模板高精度。。。。。

Posted luv-letters

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模板高精度。。。。。相关的知识,希望对你有一定的参考价值。

 

 

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

看到了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 };

 

以上是关于模板高精度。。。。。的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段2——.vue文件的模板

VSCode自定义代码片段(vue主模板)

GLSL-片段着色器不同部分的精度不同

Eclipse 中的通用代码片段或模板

PHP 精度计算引发的灾难性Bug

调用模板化成员函数:帮助我理解另一个 *** 帖子中的代码片段