Các anh chị giải giúp e đề này với Viết chương trình tích và suất ra tích p sau :P 1*2*3 ...*120
1 câu trả lời
Bài này do tích quá lớn nên các kiểu dữ liệu sẽ bị tràn số nên ta dùng Bignum. Giá trị của $P = 120!$
uses crt;
type BIGNUMBA = AnsiString;
var ans: BIGNUMBA;
i: longint;
function mul(a:BIGNUMBA; b:longint): BIGNUMBA;
var i, carry, sum:longint;
ans, tmp: BIGNUMBA;
begin
ans:=''; carry:=0;
for i:=length(a) downto 1 do
begin
sum:=(ord(a[i]) - 48) * b + carry;
carry:=sum div 10;
ans:=chr(sum mod 10 + 48) + ans;
end;
if(carry > 0) then str(carry,tmp) else tmp:='';
exit(tmp + ans);
end;
begin
clrscr;
ans:='1';
for i:=1 to 120 do
ans:=mul(ans, i);
writeln(ans);
readln;
end.
Câu hỏi trong lớp
Xem thêm