高精度运算代码

Posted

tags:

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

感谢wyh大佬和wzy大佬的帮助qwq

 

高精度加法:

技术分享
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 
 6 using namespace std;
 7 
 8 const int MAXN = 10000 + 5;
 9 
10 struct bign
11 {
12     int len;
13     int num[MAXN];
14     
15     void clear()
16     {
17         len = 0;
18         memset(num,0,sizeof(num));
19     }
20 }ans;
21 
22 bign operator + (bign a,bign b)
23 {
24     int t = 0;
25     ans.clear();
26     ans.len = max(a.len,b.len);
27     for(int i = 1;i <= ans.len;++ i)
28     {
29         ans.num[i] = a.num[i]+b.num[i]+t;
30         t = ans.num[i]/10;
31         ans.num[i]%=10;
32     }
33     if(ans.num[ans.len+1])
34         ans.len++;
35     return ans;
36 }
37 
38 char s[MAXN];
39 bign get()
40 {
41     ans.clear();
42     memset(s,0,sizeof(s));
43     scanf("%s",s+1);
44     ans.len = strlen(s+1);
45     for(int i = 1;i <= ans.len1;++ i)
46         ans.num[i] = s[ans.len-i+1]-0;
47     return ans;
48 }
49 
50 void out(bign a)
51 {
52     for(int i = a.len;i >= 1;-- i)
53         printf("%d",a.num[i]);
54 }
55 
56 int main()
57 {
58     bign a,b;
59     a = get();
60     b = get();
61     out(a+b);
62     return 0;
63 }
+

 

高精度减法:

高精*单精:

高精*高精:

高精/单精:

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

大数运算(加减乘除)

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

从零开始的算法学习生活——①高精度运算

从零开始的算法学习生活——①高精度运算

大数高精度运算(模板)

高精度运算