回 帖 发 新 帖 刷新版面

主题:n! 递归算法的问题

代码如下:

var m:integer;
function f(n:integer):longint;
  var a:longint;
   begin
    if n=1 then f:=1 else f:=n-f(n-1);
   end;
begin
readln(m);
writeln(f(m));
end.


我运行后发现结果不对,请问问题出在那里

回复列表 (共6个回复)

沙发

f:=n-f(n-1);   怎么是减呢??? f:=n*f(n-1); 吧!!

板凳

谢谢
我真粗心!

3 楼

要是N的值很大,可能就算不出来了,考虑高精度算法了

4 楼

n是小于100的

5 楼

汗……小于100的……
你知道100的阶乘多少位吗??158位!

6 楼

极力同意楼上观点。

我来回复

您尚未登录,请登录后再回复。点此登录或注册