s=1^1*2^2*3^3*4^4...*n^n,s不大于100000000
procedure TForm1.Button1Click(Sender: TObject);
var temp,s,i,j:integer;
begin
s:=1;
while s<100 do
begin
for i:=1 to 100 do
begin
temp:=1;
for j:=1 to i do
temp:=temp*i;
s:=s*temp;
end;
end;
label1.caption:=inttostr(s);
end;
运行时label里面没有结果,这是哪里错了,求高人指教。。。。。。
[解决办法]
while循环一次,s值就超出了Integer表示的范围,超出了范围会变成负数,最后会变成0
所以while这个循环就一直在执行,死循环了
[解决办法]
楼主的算法S结果是:阶乘再乘以阶乘
比如for i:=1 to 100 do,当i=8时,是多少呢? 就是1*2!*3!*4!*5!*6!*7!*8!
继续循环下去,结果真不敢想象呀,而外面还有while循环