数学
求ac代码,tyvj初级题库1039 3n+1问题网.站.地.址begin.tyvj.cn描述 Description 考虑如下序列的生成算法:从整数n开始,如果n是偶数,把他除以2;如果他是奇数,把他乘3加1.用新得到的值重复上面的步骤,知道n=1为止.例如n=22时,这个算法的生成序列是:  22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 人们猜想(没有证明)对于任意的整数n,该算法总能得到终止于n=1.这个猜想至少对于1000000以内的数都正确.  对于给定的

2019-03-30

求ac代码,tyvj初级题库1039 3n+1问题
网.站.地.址begin.tyvj.cn描述 Description 考虑如下序列的生成算法:从整数n开始,如果n是偶数,把他除以2;如果他是奇数,把他乘3加1.用新得到的值重复上面的步骤,知道n=1为止.例如n=22时,这个算法的生成序列是:
  22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
人们猜想(没有证明)对于任意的整数n,该算法总能得到终止于n=1.这个猜想至少对于1000000以内的数都正确.
  对于给定的n,该序列的元素(包括1)个数称之为n的循环节长度.例如上例中循环节长度为16.
优质解答
var n,m:longint;
begin
readln(n);
write(n,' ');
m:=1;
repeat
if n mod 2=0 then n:=n div 2
else n:=n*3+1;
m:=m+1;
write(n,' ');
until n=1;
writeln;
writeln('循环节长度:',m);
end.输入n,输出中途得到的数和循环节长度.
var n,m:longint;
begin
readln(n);
write(n,' ');
m:=1;
repeat
if n mod 2=0 then n:=n div 2
else n:=n*3+1;
m:=m+1;
write(n,' ');
until n=1;
writeln;
writeln('循环节长度:',m);
end.输入n,输出中途得到的数和循环节长度.
相关标签: 描述 序列 算法
相关问答