![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
高精度
基础算法
ღ江晚吟
如果浮生若梦,万事无常,最终都归于尘土,那么也许我们的雄心壮志不过徒然为荒诞不经的玩笑而已。如果我们无可救药地执着于自己的意义,或许也只能安于自身的可笑。
展开
-
高精度常用模板
核心 高精度是用数组来存储数值,低位在前,高位在后,所以输出要逆序输出。 1.用于阶乘 //c表示传过来的数,在主函数中可以用for循环 //注意 初始化 s[1]=1 void jc(int c){ for(int i=1;i<=len;i++) s[i]=s[i]*c; for(int i=1;i<=len;i++){ if(s[i]>=10){ long long add=s[i]/10; s[i+1]+=add; s[i]%=10; if(i+原创 2021-03-16 20:10:41 · 522 阅读 · 0 评论 -
P1303 A*B Problem
思路 c[i+j-1]+=a[i]*a[j] #include<bits/stdc++.h> #define maxn 5050 using namespace std; int a[maxn],b[maxn],c[maxn]; int main(){ string A,B; cin>>A>>B; for(int i=A.length()-1,j=1;i>=0;i--,j++) a[j]=A[i]-'0'; for(int i=B.length()-.原创 2021-03-05 19:33:34 · 81 阅读 · 0 评论 -
A+B(高精度)
思路 先用字符数组将要加的数存起来 在求出长度, 然后将字符数组倒置存在整型数组中 然后每位相加,如果大于10,则将考虑进位 最后删除前导0,注意:00 所以len>1 2.源码 #include<iostream> #include<string.h> using namespace std; int main(){ char a[600]={}; char b[600]={}; int str1[600]={}; int str2[.原创 2020-09-16 20:12:24 · 354 阅读 · 0 评论