#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main(){
//用字符数组是为了输入时方便,用int数组是为了计算方便
char a[11],b[11];
int numa[11],numb[11],numc[11];
while(scanf("%s%s",&a,&b)!=EOF){
int len1 = strlen(a);
int len2 = strlen(b);
//一定要初始化
memset(numa,0,sizeof(numa));
memset(numb,0,sizeof(numb));
memset(numc,0,sizeof(numc));
//倒着存储
for(int i=0;i<len1;i++){
numa[len1-1-i]=a[i]-'0';
}
for(int i=0;i<len2;i++){
numb[len2-1-i]=b[i]-'0';
}
int length = max(len1,len2);
int carry = 0;//进位
for(int i=0;i<=length;i++){
numc[i]=numa[i]+numb[i]+carry;
if(numc[i]>9){
numc[i]-=10;
carry=1;
}
else{
carry=0;
}
}
//控制0的输出,也要考虑结果就是一个0的情况
for(int i=length;numc[i]==0&&length>=1;i--){
length--;
}
for(int i=length;i>=0;i--){
cout<<numc[i];
}
cout<<endl;
}
}
高精度算法之加法
猜你喜欢
转载自blog.csdn.net/qq873044564/article/details/89060678
今日推荐
周排行