输入:
用字符数组输入
转化:
ASCLL码-48
两个栈压入ASCLL转化后的值
计算:
sum[i]=第一个栈的栈手+第二个栈的栈首+进位
特判
特判
输出:
反向!
#include<bits/stdc++.h>
using namespace std;
int sum[101],c;
int d[101];
int top;
int d1[101];
int top1;
int main(){
char strnum[101]={},strnum1[101]={};
cin >> strnum;
cin >> strnum1;
int len = strlen(strnum);
int len1 = strlen(strnum1);
int maxlen=max(len,len1);
for (int i=0;i<len;i++){
d[++top]= strnum[i] - 48;
if(d[top]<0) d[top]=0;
}
for (int i=0;i<len1;i++){
d1[++top1] = strnum1[i] - 48;
if(d1[top1]<0) d1[top1]=0;
}
for(int i=0;i<maxlen;i++){
if(top>0&&top1>0){
sum[i]=d[top]+d1[top1]+c;
top--;top1--;
}
else if(top>0){
sum[i]=d[top]+c;
top--;
}
else if(top1>0){
sum[i]=d1[top1]+c;
top1--;
}else{
sum[i]=c;
}
c=0;
if(sum[i]>=10){
c+=1;
sum[i]-=10;
}
}
if(c==1){
maxlen++;
sum[maxlen-1]=1;
}
for(int i=maxlen-1;i>=0;i--){
cout<<sum[i];
}
return 0;
}