这个while循环是否会停止?
while n > 1
if n mod 2 = 0 then
n:=n/2
else
n:=3*n+3
答案 0 :(得分:1)
这是等效的代码。
while ( n > 1 )
{
if ( n % 2 == 0 ) // if n is even
n = n / 2 ;
else // if n is odd
n = ( 3 * n ) + 3 ;
}
关于你的问题"会不会停止" ,这取决于n
的价值。
如果n
是奇数或奇数的倍数(1
未包括),则它将是无限循环。但如果它是偶数而不是奇数的倍数,那么它将不是无限循环。
例如,如果输入8
,则不会是无限循环。
但是,如果您输入90
(3
的倍数)之类的数字,那么它将是一个无限循环。