高精度
基础算法
ღ江晚吟
如果浮生若梦,万事无常,最终都归于尘土,那么也许我们的雄心壮志不过徒然为荒诞不经的玩笑而已。如果我们无可救药地执着于自己的意义,或许也只能安于自身的可笑。
展开
-
高精度常用模板
核心高精度是用数组来存储数值,低位在前,高位在后,所以输出要逆序输出。1.用于阶乘//c表示传过来的数,在主函数中可以用for循环//注意 初始化 s[1]=1void 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 · 574 阅读 · 0 评论 -
P1303 A*B Problem
思路c[i+j-1]+=a[i]*a[j]#include<bits/stdc++.h>#define maxn 5050using 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 · 87 阅读 · 0 评论 -
A+B(高精度)
思路先用字符数组将要加的数存起来在求出长度,然后将字符数组倒置存在整型数组中然后每位相加,如果大于10,则将考虑进位最后删除前导0,注意:00 所以len>12.源码#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 · 362 阅读 · 0 评论