主题:一道新加坡信息学竞赛试题(有兴趣的请给出解答顺带帮我解决一下问题)
dingsen
[专家分:0] 发布于 2007-02-11 10:08:00
大意:一跳虫从0开始,每次向前或向后跳n格(第n次跳跃),输入k值为共有0到k格,跳虫不能跳到小于0的地方,输出共有的方式:m,如果没有则输出0。.
例:输入4;输出1;
最后更新于:2007-02-11 10:16:00
回复列表 (共5个回复)
沙发
dingsen [专家分:0] 发布于 2007-02-11 10:14:00
下列程序不知为何过不了编译。
program hop;
const
a:array[1..2] of integer=(-1,1);
var
i,m,k:integer;
procedure print;
begin
if l=0 then write(m);
else write('0');
end;
procedure try(i:integer);
var
j,l:integer;
begin
if i>k and l=0 then begin inc(m);exit;end;
for j:=1 to 2 do
if 0<=l+a[j]*i
then begin
l:=l+a[j]*i;
try(i+1);
l:=l-a[j]*i;
end;
end;
begin
read(k);
try(1);
end.
板凳
dingsen [专家分:0] 发布于 2007-02-11 10:15:00
显示:can't find unit system
compilation aborted
3 楼
maxumi [专家分:2200] 发布于 2007-02-24 15:15:00
显示:can't find unit system
compilation aborted
这是因为你用的是FPC 2.0, 你换turbo pascal试试.
另外你的程序没有定义变量l, 在try过程里定义的变量不能用在其它过程里.
if i>k and l=0 then begin inc(m);exit;end;
这一句应该这样写:
if (i>k) and (l=0) then begin inc(m);exit;end;
还有就是你根本没有调用print过程, 不知所云.
4 楼
dingsen [专家分:0] 发布于 2007-04-13 18:41:00
被后生如此说真是失败阿,不过我以上却为错误,我忘了说一个很重要的不过的原因是我的软件没装好。不过谢谢阿!
我来回复