主题:[讨论]奇!free pascal不能作递归!(回复就给分!)
cxxx401
[专家分:140] 发布于 2007-07-20 15:56:00
我做了一个递归题目,查了一万遍,问了一万遍,最后发现竟是无法递归!
我的系统是电脑公司特别版xp ghost 7.0.
有谁遇到过这样的问题,请指教,只要不是灌水就给分!
不能递归,比如说用递归做一个n个数全排列,输入5,输出永远只有12345;
再比如更简单的求阶乘,输入任何数,输出永远是1。
赐教赐教!在此多谢了。
最后更新于:2007-07-20 15:56:00
回复列表 (共8个回复)
沙发
bigchen [专家分:1940] 发布于 2007-07-20 16:12:00
我认为你应该把free pascal重新安装一下
比赛专用版本是:free pascal 1.0.1
板凳
Matodied [专家分:7560] 发布于 2007-07-20 16:19:00
求全排列的程序在:
[url=http://www.programfan.com/club/post-242503.html]这里[/url]。
里面有我的2个回复(一个是递归,一个是回朔)
4 楼
cxxx401 [专家分:140] 发布于 2007-07-21 14:19:00
各位,我重装了fp(而且还是在天空里新下载的),但是仍然不行啊,
就是不能递归。
程序不可能出错的,因为我只要是做递归就出现同样的情况。我觉得对于一个简单的
递归程序我还可以做对。
谢谢回溯之类的程序,但程序我也会做,只是由于无法递归,所以正确的程序也无法运行成功。
不行啊,大家还有没有办法?急啊,不然这个暑假就泡汤了。
5 楼
Lovely哆啦 [专家分:1360] 发布于 2007-07-21 18:25:00
[quote]我认为你应该把free pascal重新安装一下
比赛专用版本是:free pascal 1.0.1[/quote]
6 楼
AntiMicrosoft [专家分:3740] 发布于 2007-07-21 18:57:00
function a : longint;
begin
a:=12;
while a>4 do
begin
{...}
end;
end;
这个例子在Turbo Pascal中,a>4会被认为是函数的递归调用,但是在Free Pascal中会认
为a只是一个变量。如果想在Free Pascal中实现递归调用,就要写成下面的形式:
function a : longint;
begint
a:=12;
{ this is the recursive call }
if a()>4 then
begin
{...}
end;
end;
7 楼
cxxx401 [专家分:140] 发布于 2007-07-22 11:34:00
可是这还是不能解决问题啊!
8 楼
cxxx401 [专家分:140] 发布于 2007-07-22 11:50:00
看样子玩完了,我装了tp,也不能递归。
让大家费心啦。
我来回复