一道用数学题,你能用pascal做好吗?

来源:百度知道 编辑:UC知道 时间:2024/05/29 15:56:23
①当n为奇数时,结果为3n+5;②当n为偶数时,结果为n/2^k(n除以2的k次方)(其中k是使n除以"2^k"为奇数的正整数),并且运算重复进行——

例如,取n=26,则:
F② F① F②
26-----13-----44-----11

↑ ↑ ↑ ↑

第1次 第2次 第3次 第4次

现在,我要求输入一个数(n)和一个数(m)得到——
对“n”实行这种运算,将前“m”次的结果写出——

应该不难吧~
就是个循环,
不过我道行有点浅……

Program
var i,j,m,n:integer;
beign
read(n,m); {读入n,m}
repeat
if (n mod 2=0) then n:=n div 2
else n:=3*n+5; {如果n为偶数然后n取一半、否则n为3*n+5}
write(n,' '); {输出n}
dec(m); {递减m}
until m=0; {直到m等于零为止,停止循环}
end.

while m>0 do begin
dec(m);
if (n mod 2 = 0) then
while (n mod 2 = 0) do n := n div 2;
else n := n * 3 + 5;
writeln(n);
end;

多练习,基础很重要!!!