高精乘

原创 2015年07月10日 09:47:06
var

i,j,la,lb,len:integer;

s1,s2:string;

m:longint;

a,b,c:array[1..250] of integer;

begin

readln(s1);

la:=length(s1);

readln(s2);

lb:=length(s2);

for i:=1 to la do

a[i]:=ord(s1[la-i+1])-48;

for i:=1 to lb do

b[i]:=ord(s2[lb-i+1])-48;

for i:=1 to la do

for j:=1 to lb do

c[i+j-1]:=c[i+j-1]+a[i]*b[j];

len:=la+lb;

for i:=1 to len do

begin

c[i+1]:=c[i+1]+c[i] div 10;

c[i]:=c[i] mod 10;

end;

while c[len]=0 do dec(len);

m:=c[len];

while m>0 do

begin

c[len]:=m mod 10;

m:=m div 10;

inc(len);

end;

for i:=len-1 downto 1 do

write(c[i]);

writeln;

end.
代码二:Const

    SIZE = 200+10;

Type

    hugeint = Record

        len : Integer;

        num : Array[1..SIZE] Of int64;

    End;

var a:hugeint;

    s1:string;

    i:integer;

    x:longint;

 procedure lowmul(a:hugeint;x:longint);

   var

    i:longint;

    ans:hugeint;

  begin

   fillchar(ans.num,sizeof(ans.num),0);

   ans.len:=a.len;

   for i:=1 to ans.len do ans.num[i]:=a.num[i]*x;

   for i:=1 to ans.len do

    begin

      inc(ans.num[i+1],ans.num[i] div 10);

      ans.num[i]:=ans.num[i] mod 10;

    end;



   while ans.num[ans.len+1]>0 do

    begin

     inc(ans.len);

     inc(ans.num[ans.len+1],ans.num[ans.len] div 10);

     ans.num[ans.len]:=ans.num[ans.len] mod 10;

    end;

    for i:=ans.len downto 1 do write(ans.num[i]);

    writeln;

  end;





 procedure datain;

   begin

    assign(input,'lowmul.in');  assign(output,'lowmul.out');

    reset(input); rewrite(output);

    readln(s1);

    readln(x);

    a.len:=length(s1);

    for i:=1 to a.len do  a.num[i]:=ord(s1[a.len-i+1])-ord('0');

 end;

 begin

   datain;

   lowmul(a,x);

   close(input);close(output);

 end.
版权声明:本文为博主原创文章,未经博主允许不得转载。

高精度之高精乘低精

#include #include #include #include #include #include using namespace std; struct bignum { int l...
  • WhiStLenA
  • WhiStLenA
  • 2016年09月18日 15:09
  • 619

高精度乘单精度

高精度乘单精度 传入参数约定:传入第一个参数为string类型,,第二个参数为int型,返回值为string类型 算法思想:倒置相乘,然后统一处理进位,再还原。 算法复杂度:o(...
  • liangzhaoyang1
  • liangzhaoyang1
  • 2016年03月18日 23:33
  • 539

POJ 1306 Combinations 高精度乘法

题目大意:给出mn,让你求C(m,n)。 思路:公式都给你了,就100,暴力就可以关键还是高精度。如果按照算法“它让你怎么做你就怎么做”,那么很显然你需要写一个高精度除法。然而可以证明,这个...
  • jiangyuze831
  • jiangyuze831
  • 2014年10月28日 18:37
  • 664

高精·乘

高精度乘法
  • ivy_uu
  • ivy_uu
  • 2016年12月13日 16:16
  • 132

【BZOJ2179】FFT快速傅立叶 高精度乘模板题

题解: 其实没什么题解,只是贴个模板+理解注释 代码: #include #include #include #include #include #include using n...
  • Vmurder
  • Vmurder
  • 2015年03月02日 10:39
  • 1561

C++实现高精度乘法

由于计算机的存储字节有限,所以不能完整表示一个很大整数的精确值,这时候就得用到其他的方法,称之为高精度算法。这里,主要说下高精度乘法。高精度乘法,实际上,就是模拟乘法的过程。像小学的笔算过程。 ...
  • u012891055
  • u012891055
  • 2014年12月15日 17:46
  • 3343

高精度乘法模板

高精度乘法 模板 1.char 类 void High_Char(char a[], char b[]) { int num[500]; memset(num, 0, si...
  • Chuck_0430
  • Chuck_0430
  • 2013年09月10日 20:36
  • 3521

高精幂乘

#include #include using namespace std; int num[3000]; void multi(int n) { for(int i=0;i
  • u013480370
  • u013480370
  • 2014年07月03日 16:09
  • 266

高精加、乘

高精加 void jia(int c,int e) { int i,j,n;     n=b[c]; for (i=1;i { a[e][i]=a[c][i]+a[e][i]; if ...
  • linylin
  • linylin
  • 2017年08月03日 19:49
  • 86

高精度模板之高精乘高精

话说
  • u013810072
  • u013810072
  • 2014年11月04日 19:39
  • 407
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:高精乘
举报原因:
原因补充:

(最多只允许输入30个字)