您的位置:首页 > 其它

jzoj 【2014.8.17NOIP普及组模拟】公牛数学

2016-08-23 11:17 423 查看


【2014.8.17NOIP普及组模拟】公牛数学(bullmath.pas/c/cpp) 

(File IO): input:bullmath.in output:bullmath.out

时间限制: 1000 ms  空间限制: 128000
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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: