jzoj【2014.8.17 NOIP普及グループシミュレーション】雄牛数学
6084 ワード
【2014.8.17 NOIP普及グループシミュレーション】雄牛数学(bullmath.pas/c/cpp)(File IO):input:bullmath.in output:bullmath.out
時間制限:
1000 msのスペース制限:
128,000 KB詳細制限
Goto ProblemSet
タイトルの説明
雄牛は数学の面で乳牛より多く、大きな整数間の乗算を計算できると自称し、正確な結果を得た.農夫のジョンは彼らの答えが正しいかどうかを知りたい.彼が雄牛の答えをチェックするのを手伝ってください.2つの正の整数(10^40以下)を読み込み、それらの積を計算し、自然数を出力します(余分なゼロは含まれません).
ジョン農夫はあなたにこの仕事をさせます.
高精度乗算...
時間制限:
1000 msのスペース制限:
128,000 KB詳細制限
Goto ProblemSet
タイトルの説明
雄牛は数学の面で乳牛より多く、大きな整数間の乗算を計算できると自称し、正確な結果を得た.農夫のジョンは彼らの答えが正しいかどうかを知りたい.彼が雄牛の答えをチェックするのを手伝ってください.2つの正の整数(10^40以下)を読み込み、それらの積を計算し、自然数を出力します(余分なゼロは含まれません).
ジョン農夫はあなたにこの仕事をさせます.
高精度乗算...
const
maxn=100;
var
s1,s2:string;
len1,len2:longint;
a,b:array[1..maxn] of longint;
c:array[1..2*maxn] of longint;
procedure init;
var
i,j:longint;
begin
fillchar(c,sizeof(c),0);
readln(s1);
readln(s2);
len1:=length(s1);
len2:=length(s2);
for i:=1 to len1 do
a[len1-i+1]:=ord(s1[i])-48;
for i:=1 to len2 do
b[len2-i+1]:=ord(s2[i])-48;
end;
procedure mul;
var
i,j:longint;
begin
for i:=1 to maxn do
for j:=1 to maxn do
begin
c[i+j-1]:=a[i]*b[j]+c[i+j-1];
c[i+j]:=c[i+j-1] div 10+c[i+j];
c[i+j-1]:=c[i+j-1] mod 10;
end;
end;
procedure print;
var
i,j:longint;
begin
j:=2*maxn;
while (c[j]=0) and (j>1) do dec(j);
for i:=j downto 1 do
write(c[i]);
end;
begin
assign(input,'bullmath.in'); reset(input);
assign(output,'bullmath.out');rewrite(output);
init;
mul;
print;
close(input);close(output);
end.