视频链接:
#include <iostream> using namespace std; const int N = 505; int A[N],B[N],C[N]; int la,lb,lc; void add(){ lc=max(la,lb); int t = 0; for(int i=0;i<=lc;i++){ t += A[i]+B[i]; //加 C[i] = t % 10; //存 t /= 10; //进 } if(t) C[++lc]=t;//处理最高位 } int main(){ string a, b; cin >> a >> b; la=a.size()-1,lb=b.size()-1; for(int i=la; ~i; i--) A[la-i]=a[i]-'0'; for(int i=lb; ~i; i--) B[lb-i]=b[i]-'0'; add(); for(int i=lc; ~i; i--) printf("%d",C[i]); return 0; }
#include <iostream> using namespace std; const int N = 505; int A[N],B[N],C[N]; int la,lb,lc; void add(){ lc=max(la,lb); for(int i=0;i<=lc;i++) C[i] = A[i]+B[i]; //相加 for(int i=0;i<=lc;i++){ C[i+1] += C[i]/10; //进位 C[i] %= 10; //存余 } if(C[lc+1]) lc++;//处理最高位 } int main(){ string a, b; cin >> a >> b; la=a.size()-1,lb=b.size()-1; for(int i=la; ~i; i--) A[la-i]=a[i]-'0'; for(int i=lb; ~i; i--) B[lb-i]=b[i]-'0'; add(); for(int i=lc; ~i; i--) printf("%d",C[i]); return 0; }
#include <iostream> #include <vector> using namespace std; vector<int> A, B, C; void add(){ int t=0; for(int i=0; i<A.size()||i<B.size(); i++){ if(i<A.size()) t += A[i]; if(i<B.size()) t += B[i]; C.push_back(t % 10); t /= 10; } if(t) C.push_back(t); } int main(){ string a, b; cin >> a >> b; for(int i=a.size()-1; ~i; i--) A.push_back(a[i]-'0'); for(int i=b.size()-1; ~i; i--) B.push_back(b[i]-'0'); add(); for(int i=C.size()-1; ~i; i--) printf("%d", C[i]); return 0; }
标签:lb,lc,la,int,高精度,--,加法,size,501 From: https://www.cnblogs.com/dx123/p/16651627.html