切换到宽版
  • 7637阅读
  • 6回复

各位达人和高手进来看看一题高精度,奇怪得很~求程序啊! [复制链接]

上一主题 下一主题
离线syc_pascal
 
只看楼主 倒序阅读 0 发表于: 2007-11-27
各位达人和高手进来看看一题高精度,奇怪得很~
求程序啊!

用高精度计算出
S=1!+2!+3!+…n!(n<=50).其中“!”表示阶乘,例如:5!=5*4*3*2*1.


Input
  正整数n


Output
    输出计算结果S。


哪位大牛来一下???
I KNOW I CAN!
你行,我也行!
你傻,我不傻!
全面落实社会主义骗分观,学习三个代表的成功骗分精神!
离线amyhab
只看该作者 1 发表于: 2007-12-01
很简单,
滚动数组
To Be,Or not to be.That's a Question!!!!!!!
离线syc_pascal
只看该作者 2 发表于: 2007-12-02
求程序啊!
I KNOW I CAN!
你行,我也行!
你傻,我不傻!
全面落实社会主义骗分观,学习三个代表的成功骗分精神!
离线小僵
只看该作者 3 发表于: 2007-12-10
copy code
Program jiecheng;
  var n,k,i,j,v,temp:integer;
  a,b:array[1..100] of integer;
begin
  assign(output,'jiecheng.out');
  rewrite(output);
  read(n);
  for i:=1 to n do begin
    a[1]:=1;
    for j:=1 to i do begin
    for v:=1 to 100 do a[v]:=a[v]*j;
    temp:=a[1] div 10;
    a[1]:=a[1] mod 10;
    k:=1;
    while k<100 do begin
    inc(k);
    a[k]:=a[k]+temp;
    temp:=a[k] div 10;
    a[k]:=a[k] mod 10;
    end;
    end;
    for j:=1 to 100 do
    b[j]:=b[j]+a[j];
    k:=1;
    temp:=b[1] div 10;
    b[1]:=b[1] mod 10;
    while k<100 do begin
    inc(k);
    b[k]:=b[k]+temp;
    temp:=b[k] div 10;
    b[k]:=b[k] mod 10;
    end;
    for j:=1 to 100 do a[j]:=0;
    end;
    k:=100;
    while b[k]=0 do dec(k);
    for i:=k downto 1 do write(b);
    writeln;
    close(output);
end.
离线小僵
只看该作者 4 发表于: 2007-12-10
就这个.
离线syc_pascal
只看该作者 5 发表于: 2007-12-12
回 3楼(小僵) 的帖子
细看中....
头晕中...
I KNOW I CAN!
你行,我也行!
你傻,我不傻!
全面落实社会主义骗分观,学习三个代表的成功骗分精神!
离线caobo4413
只看该作者 6 发表于: 2008-11-09
可以从最后开始,仿照求阶乘的程序,每乘一个数加一。
快速回复
限100 字节
 
上一个 下一个