回 帖 发 新 帖 刷新版面

主题:急救!!!

(源程序名:xx1.pas,可执行文件名:xx1.exe)
(输入文件名:xx1.in,输出文件名:xx1.out)
问题描述
在数学上,有这样一个概念:阶乘。一个整数n的阶乘(n!)是这样定义的:
当n=1时,有n!=1    即1!=1;
当n>1时,有n!=n*(n-1)!,即:fac(n)=n*fac(n-1);
特别规定,0的阶乘为1,即0!=1。
比如5!=5*4!=5*4*3!=5*4*3*2!=5*4*3*2*1!=5*4*3*2*1=120
要求:当给定一个整数后,求出其阶乘。
本题输入文件只包含一行,其内容是一个整数,即n的值,
输出文件也仅含一行,其内容也是一个整数,即对应的阶乘值。
[输入输出样例]:
输入:
 5
输出:
 120



大家帮忙,编一下。

回复列表 (共3个回复)

沙发

readln(n);
k:=1;
for i:=2 to n do k:=k*i;
writeln(k);
加分!!!

板凳

上贴是在10的范围内,超过后只能用高精度

3 楼

function recursion(n:integer):longint;
    var back:longint;
    begin
      if(n=1) then back:=1
      else
        back:=n*recursion(n-1);
      recursion:=back;
    end;
var all:longint;i:integer;
begin
  { TODO -oUser -cConsole Main : Insert code here }
    all:=recursion(5);
    writeln(all);
    read(i);

end.

我来回复

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