noip 用pascal语言设计考虑如下序列的生成算法:从整数n开始,如果n是偶数,把他除以2;如果他是奇数,把他乘3加1.用新得到的值重复上面的步骤,知道n=1为止.例如n=22时,这个算法的生成序列是:2

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/21 23:48:12
noip用pascal语言设计考虑如下序列的生成算法:从整数n开始,如果n是偶数,把他除以2;如果他是奇数,把他乘3加1.用新得到的值重复上面的步骤,知道n=1为止.例如n=22时,这个算法的生成序列

noip 用pascal语言设计考虑如下序列的生成算法:从整数n开始,如果n是偶数,把他除以2;如果他是奇数,把他乘3加1.用新得到的值重复上面的步骤,知道n=1为止.例如n=22时,这个算法的生成序列是:2
noip 用pascal语言设计
考虑如下序列的生成算法:从整数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.
输入格式 Input Format
输入两个数i,j,你的任务是计算i到j(包含i和j),之间的整数中,循环节长度最大的值
并且有多组数据!
0

noip 用pascal语言设计考虑如下序列的生成算法:从整数n开始,如果n是偶数,把他除以2;如果他是奇数,把他乘3加1.用新得到的值重复上面的步骤,知道n=1为止.例如n=22时,这个算法的生成序列是:2
program ex01;
var
a:array[1..100000000] of integer;
b,c:array[1..100] of longint;
i,n,m,x,y,j:longint;
procedure search(x,y,z:longint);
begin
if ( (y>1000000) or (a[y]0)) then
if odd(y) then search(x,y+y+y+1,z+1)
else search(x,y shr 1,z+1)
else a[x]:=a[y]+z;
end;
procedure f(x:longint);
begin
if a[x]0 then exit;
if odd(x) then begin if x+x+x+1>1000000 then search(x,x,0) else begin f(x+x+x+1);a[x]:=a[x+x+x+1]+1;end;end
else begin f(x shr 1);a[x]:=a[x shr 1]+1;end;
end;
begin
fillchar(a,sizeof(a),0);
read(n);
a[1]:=1;
a[2]:=2;
a[4]:=3;
for i:=1 to n do
read(b[i],c[i]);
for j:=1 to n do
begin
m:=0;
for i:=b[j] to c[j] do
begin
f(i);
if a[i]>m then m:=a[i];
end;
writeln(b[j],' ',c[j],' ',m);
end;
end.
不过你需要先输入有几组数据,不然的话你可以改动一下输入

noip 用pascal语言设计考虑如下序列的生成算法:从整数n开始,如果n是偶数,把他除以2;如果他是奇数,把他乘3加1.用新得到的值重复上面的步骤,知道n=1为止.例如n=22时,这个算法的生成序列是:2 谁有历年NOIP竞赛的试题?pascal语言, noip竞赛参加noip初赛时我报的是c语言复赛时可以用pascal吗?需要什么手续吗? Noip提高组pascal题目 noip 2009信息学奥林匹克联赛初赛Pascal语言试题答案解析,只求第三大题解答,说为什么得到答案, 化学方程式配平程序的设计如何设计pascal语言 2010年noip复赛第三题导弹拦截答案(Pascal语言)请给我思路和标准程序(标程可以省略,但思路情讲清晰, 用pascal语言编程:输出n(n 2008noip普及组复赛解题报告第四题(pascal) noip初赛NOIP初赛PASCAL语言普及组估计多少分能进复赛?我是江苏的(分我舍得给,反正一千多分没处去,但是要真实,说说别的省份的也行)如果不能达到省定分数线,学校有一定名额吗? 用Pascal语言求m^n的精确值,0 历年noip初中组c++初、复赛试题要c++的,不要pascal! 用pascal语言编程,某班有55名同学,已知学号,为了知道有谁作业没交,请用pascal语言编个程. 在pascal语言中,如何在一个数组中选取5个数,使其之和最大且小于某数?我是新手,过程要简洁.回答满意加50分,这是2006noip普及组的一道题:2.开心的金明 全国信息学奥林匹克竞赛(noip)07年,08年,09年的试题和答案是初赛,pascal语言,普及组。(是初中参加的,我想应该不会是提高组)如果知道每年进入复赛的分数线的大致情况,就麻烦顺便 动态规划如何设计状态转移方程RT请用PASCAL 用随机函数random产生100到1000的随机数,用pascal语言,语句怎么写? 输入一个自然数,求这个自然数的所有约数之和,用PASCAL语言