码迷,mamicode.com
首页 > 其他好文 > 详细

【模板】高精度。。。。。

时间:2018-09-12 20:25:01      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:through   ati   line   tor   ext   精度   while   col   return   

 

 

真是越学越回去了,颓颓颓~

看到了zky大佬的高精模板    简直tql

兴冲冲抄了一发

 如下:

 1 struct bignum{
 2     int num[100];
 3     bignum(){num[0]=1;}
 4     void set(long long x){
 5         memset(num,0,sizeof(num));
 6         while (x) num[++num[0]] =x%10,x/=10; 
 7         if(!num[0]) num[0]=1;
 8     }
 9     void show(){
10         for(int i=num[0];i>=1;--i)
11         putchar(num[i]+0);
12     }
13     bignum operator + (bignum b) const {
14         bignum c;
15         c.set(0);
16         c.num[0]=max(num[0]+b.num[0])+1;
17         for(int i=1;i<=num[i];i++){
18             c.num[i]+=num[i]+b.num[i];
19             c.num[i+1]+=c.num[i]/10;
20             c.num[i]%=10;
21         }
22         while (c.num[0]>1 && !c.num[c.num[0]]) 
23             c.num[0]--;
24         return c;
25     }
26     bignum operator * (bignum b) const {
27         bignum c;
28         c.set(0);
29         c.num[0]=num[0]+b.num[0]+1;
30         for(int i=1;i<=num[i];i++)
31           for(int j=1;j<=b.num[0];j++){
32               c.num[i-j+1]+=num[i]*b.num[j];
33               c.num[i-j]+=c.num[i-j+1]/10;
34               c.num[i-j+1]%=10;
35         }
36         while (c.num[0]>1 && !c.num[c.num[0]]) 
37             c.num[0]--;
38         return c;
39     }
40     bool operator < (bignum b) const {
41         if(num[0]<b.num[0]) return true;
42         if(num[0]>b.num[0]) return false;
43         for(int i=num[0];i>=1;i++){
44             if(num[i]<b.num[i]) return true;
45             if(num[i]>b.num[i]) return false;
46         }    
47         return false;
48     }
49 };

 

【模板】高精度。。。。。

标签:through   ati   line   tor   ext   精度   while   col   return   

原文地址:https://www.cnblogs.com/luv-letters/p/9636477.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!