作业帮 > 综合 > 作业

pascal 松鼠吃果子

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/13 06:47:57
pascal 松鼠吃果子
样例我看不太明白,再发一下参考程序
描述 Description
有N个一种松鼠喜欢吃的果子由下向上串排成一列,并标号1,2,...N.一只松鼠从最下果子开始向上跳,并且第i次跳可以一次跳过i*i*i除以5的余数+1个果子(=i*i*i%5+1),并把脚下的果子吃了,如果上面有果子,在重力作用下,都将向下掉下一格.如第1次跳从第一个果子上跳过1*1*1%5+1=2个果子,可跳到第3个果子上,并把第3个果子吃了;第2次从第4个果子上(落在原来第三个果子位置)跳过2*2*2%5+1=4个到第8个果子上,并把第8个吃了;如此.
当然,总有一次松鼠会跳出这串果子的最前面,设为每K次,它吃不到任何果子了.这时它回到最下面的果子上,重做它的第K次跳,以求吃到果子.如此,问它吃的第m只果子(即第M跳吃到的果子)的标号是什么?
输入格式 Input Format
一共两行,分别为N和m.(1
var n,m,a,i:word;s:string[200];
begin
readln(n);
readln(m);
a:=1;
for i:=1 to n do s:=s+chr(i);
for i:=1 to m-1 do
if (a+((i*i*i) mod 5)+1)>n then begin
a:=1;
a:=a+((i*i*i) mod 5)+1;
delete(s,a,1);
n:=n-1;
end
else begin
a:=a+((i*i*i) mod 5)+1;
delete(s,a,1);
n:=n-1;
end;
if (a+((m*m*m) mod 5)+1)>n then begin
a:=1;
a:=a+((m*m*m) mod 5)+1;
end
else
a:=a+((m*m*m) mod 5)+1;
write(ord(s[a]));
end.
‘vijos’过了的答案