给出一个整数n,如果n是偶数,n变为n div 2,否则n变为n*3+1,问经过多少步n变为1,求一pascal程序.如输入5,就输出5(步数)

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/03 03:05:46
给出一个整数n,如果n是偶数,n变为n div 2,否则n变为n*3+1,问经过多少步n变为1,求一pascal程序.如输入5,就输出5(步数)

给出一个整数n,如果n是偶数,n变为n div 2,否则n变为n*3+1,问经过多少步n变为1,求一pascal程序.如输入5,就输出5(步数)
给出一个整数n,如果n是偶数,n变为n div 2,否则n变为n*3+1,问经过多少步n变为1,求一pascal程序.
如输入5,就输出5(步数)

给出一个整数n,如果n是偶数,n变为n div 2,否则n变为n*3+1,问经过多少步n变为1,求一pascal程序.如输入5,就输出5(步数)
var n,t:longint;
begin
read(n);t:=0;
while n<>1 do
if n mod 2=0 then begin t:=t+1; n:=n div 2; end
else begin t:=t+1; n:=n*3+1; end;
write(t);
end.

read(n);ans:=0;
while n<>1 do //如果n还没变成1则继续循环
begin
if n mod 2=0 then n:=n div 2
else n:=n*3+1;
ans:=ans+1; //步数加1
end;
write(ans);

这个是角谷猜想。
指对于每一个正整数,如果它是奇数,则对它乘3再加1;如果它是偶数,则对它除以2,如此循环,若干步后最终都能够得到1。
程序:
Program Jiaogu;
Var n, Total: Longint;
Procedure JG(Num: Longint);
Begin
If Num > 1 Then

全部展开

这个是角谷猜想。
指对于每一个正整数,如果它是奇数,则对它乘3再加1;如果它是偶数,则对它除以2,如此循环,若干步后最终都能够得到1。
程序:
Program Jiaogu;
Var n, Total: Longint;
Procedure JG(Num: Longint);
Begin
If Num > 1 Then
If Odd(Num) Then
Begin JG(Num Div 2); Inc(Total); End
Else
Begin JG(Num * 3 + 1); Inc(Total); End;
End;
Begin {Main}
Readln(n);
Total:= 0; JG(n);
Writeln(Total);
End.

收起

var n,s:integer;
begin
readln(n);
s:=0;
while n<>1 do begin
if n div 2=0 then n:=n div 2 else n:=n*3+1; s:=s=1;
if n=1 then break; end;
writeln(s);
end.