如题

解决方案 »

  1.   

    递归:
    function fact(n:integer):integer;
    begin
      if (n=0) or (n=1) then
         result:=1
      else result:=n*fact(n-1);
    end;非递归:
    function fact(n:integer);integer;
    var
      i:integer;
      tmp:integer;
    begin
      tmp:=1;
      for i:= n downto 1 do
        tmp:=tmp*i;
      result:=tmp;
    end;
      

  2.   

    算法本来就这样,具体实现的话,比如DES,RSA的实现也是这个算法,只不过是把结果放在一个字符数组里保存而已.至于大数运算,我倒也挺想讨论一下的
      

  3.   

    是啦。。数字大的话怎么解决,换成float??