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

来源:互联网 发布:淘宝联盟电脑版和手机 编辑:程序博客网 时间:2024/05/17 07:44

题目描述

     公牛在数学方面比奶牛强很多,他们自称可以计算很大的整数之间的乘法,并得到精确的结果。农夫约翰想知道他们的答案是否正确。请你帮助他检查公牛的答案。读入2个正整数(不大于10^40),计算他们的乘积,输出一个自然数(不能含有多余的零)。

     约翰农夫让你自己做这个工作。
题解:
  高精乘。
代码:
const  maxn=100;var  a,b,c:array[1..maxn] of longint;  l:longint;procedure cf;var  i,j:longint;begin  for i:=1 to l do    for j:=1 to l do      begin        c[i+j-1]:=a[j]*b[i]+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;  l:=maxn;  while c[l]=0 do dec(l);end;var  x,y:string;  i:longint;begin  assign(input,'bullmath.in');reset(input);  assign(output,'bullmath.out');rewrite(output);  readln(x);  readln(y);  for i:=1 to length(x) do    val(x[length(x)-i+1],a[i]);  for i:=1 to length(y) do    val(y[length(y)-i+1],b[i]);  if length(x)>length(y) then    l:=length(x)  else l:=length(y);  cf;  for i:=l downto 1 do    write(c[i]);  close(input);close(output);end.


3 0