私はcollatz推測テスターをバッチでコード化しようとしています(数学のものです)。ファイルのポイントは、数値が偶数であるかどうか、および2で除算されているかどうかをテストすることです。数字が奇数の場合は、3を掛けて1を加算すると仮定します。これは何度も繰り返す必要があります。このファイルを試して実行するたびに、数字を入力できるようになり、「+今のところ予期しなかった」と表示されます。ここで私のエラーは何ですか?バッチ「予期しない」エラー
@echo off
color f0
title Collatz Conjecture Tester
echo/
echo Enter the number you want to test.
echo/
echo/
set /p number=
:start
set /a test=%number% %% 2
if %test% EQU 0 (
set /a number=%number% * 1/2
) else (
set /a number=(%number% * 3) + 1
)
echo/
echo Result: %number%
timeout /t 1 >nul
goto start
バッチ内のすべての数値は符号付き32ビット整数であることに注意してください。したがって、コードの最大入力は2147483647であり、コードの3n + 1部分でも整数オーバーフローが発生します。結果はマイナスになります。 – SomethingDark