回 帖 发 新 帖 刷新版面

主题:[求助]一道简单的题

求n的阶层(n<100)
例:
5!=5×4×3×2×1
谢谢啦!

回复列表 (共25个回复)

11 楼

program jiecheng;
const max=1000;
var n,i,j,jinwei,weishu:integer;
    result:array [1..max] of integer;
begin
  write('Please input n:(qiu n!)');
  readln(n);
  fillchar(result,sizeof(result),0);
  result[1]:=1;
  weishu:=1;
  for i:=2 to n do
  begin
    jinwei:=0;
    for j:=1 to weishu do
    begin
      result[j]:=result[j]*i+jinwei;
      jinwei:=result[j] div 10;
      result[j]:=result[j] mod 10;
    end;
    while jinwei<>0 do
    begin
      weishu:=weishu+1;
      result[weishu]:=jinwei mod 10;
      jinwei:=jinwei div 10;
    end;
    if weishu>max then
    begin
      writeln('The weishu is too big!');
      halt;
    end;
  end;
  writeln(n,'!=');
  for i:=weishu downto 1 do
    write(result[i]);
  readln;
end.

求n!.

12 楼

顶上来

13 楼

怎么不用或函数递归??????

14 楼

progrsam lx;
function jc(n:integer):integer;
var
x,t:integer;
begint:=1;
for x:=2to n do
t:=t*x;
jc:=t;
end.

15 楼

progrsam lx;
function jc(n:integer):integer;
var
x,t:integer;
begint:=1;
for x:=2to n do
t:=t*x;
jc:=t;
end.

16 楼


progrsam lx;
function jc(n:integer):integer;
var
x,t:integer;
begint:=1;
for x:=2to n do
t:=t*x;
jc:=t;
end.

17 楼


progrsam lx;
function jc(n:integer):integer;
var
x,t:integer;
begint:=1;
for x:=2to n do
t:=t*x;
jc:=t;
end.

18 楼

递归可以用,数组做变参
函数不可以,因为函数类型不能是数组

19 楼

4月提出的问题现在还在回答!!!希望我能占个地下室。

20 楼

[quote]建议用高精度[/quote]
根本不需要高精度,一个FOR语句就解决问题了
for i:=n downto 1 do

我来回复

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