永发信息网

s=(2*2)!+(3*3)!+……+(1000*1000)!的编程代码

答案:3  悬赏:70  手机版
解决时间 2021-04-06 05:19
  • 提问者网友:蓝莓格格巫
  • 2021-04-05 07:58
s=(2*2)!+(3*3)!+……+(1000*1000)!的编程代码
最佳答案
  • 五星知识达人网友:过活
  • 2021-04-05 09:30
1000*1000=1M
1M*1M=1000TB
这样大的内存占用计算机无法处理。

100×100=10000
10000×10000=0.1G (这只是最后两个数相乘占用内存的近似值............)
--------此时占用的内存也相当大 ! 普通计算机仍无法处理 !
===================================
高精度的delphi程序:
program jiechen_plus;
{$APPTYPE CONSOLE}
uses
SysUtils,high;
var
s,t,x:ansistring;
i,j:longint;
begin
s:='0';
for i:=2 to 20 do begin
t:='1';
for j:=1 to i*i do begin
str(j:0,x);
t:=mult(t,x);
end;
s:=plus(s,t);
end;
writeln(s);
writeln('length=',len(s));
readln;
end.
全部回答
  • 1楼网友:酒者煙囻
  • 2021-04-05 10:38
1000*1000的阶乘太大了,普通程序算不了追问那到100呢就是函数的调用这块追答100也够大的,有个10、20的就不小了
普通用函数,但这个算不了太大的:
int fun(int x) { int i,s; for ( i=s=1;i<=x;i++ ) s*=i; return s; }
如果稍微范围大点可以:
double fun(int x) { int i;double s; for ( i=s=1;i<=x;i++ ) s*=i; return s; }
调用举例: printf("20!=%.0lf\n",fun(20));
  • 2楼网友:千夜
  • 2021-04-05 09:43
根本不可能,当s=(2*2)!+(3*3)!+……+(13*13)!时,其值已经达到了4.29448003393208E+304,
当X=3,(X*X)!=1*2*3*4*5*6*7*8*9=362880,
当X=4,(X*X)!=1*2*3*....*15*16=20922789888000,
.........................................................
当X=10,(X*X)!=1*2*...*99*100=8.09429852527344E+200
当X=13,(X*X)!=1*2*...*168*169=4.2690680090047E+304
当X=14时就已经溢出了,能够算到X=1000吗?
你说,这样大的数据,那个计算机能够算出来?除非你到国家计算中心看能不能办得到。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯