目描述
zhrt是数学大佬,但有一天一道奇怪的数学题把他难住了:题目要求计算两个十进制数相加后的结果,但在本题中是不需要进位的!
现在zhrt弯下他的小蛮腰向你请教,你能帮帮他吗?
现在zhrt弯下他的小蛮腰向你请教,你能帮帮他吗?
输入描述:
输入有多组(组数不超过1000),每组占一行,每行有2个正整数A和B。(A,B<=1e9)
输出描述:
每组输出占一行,输出题目中A和B相加的结果。
示例1
输入
123 321 999 1 99 11
输出
444 990 0
没思路,后来想了想,倒过来储存正好可以把每一位对齐;然后%10,算出结果
#include <iostream>
#include<string.h>
#include<string>
#include<stdio.h>
using namespace std;
char a[15];
char b[15];
long long t,a1[15],b1[15],ans[15],l=0;
int main ()
{
while(cin>>a>>b)
{
l=0;
memset(a1,0,sizeof(a1));
memset(b1,0,sizeof(b1));
memset(ans,0,sizeof(ans));
int len1=strlen(a);
int len2=strlen(b);
t=max(len1,len2);
for(int i=0,j=len1-1;j>=0;i++,j--){
a1[i]=a[j]-'0';
}
for(int i=0,j=len2-1;j>=0;i++,j--){
b1[i]=b[j]-'0';
}
for(int j=0;j<t;j++)
{
if(a1[j]+b1[j]>=10)
{
ans[j]=(a1[j]+b1[j])%10;
}
else
{
ans[j]=a1[j]+b1[j];
}
// cout<<ans[j]<<endl;
}
for(int i=t-1;i>=0;i--){
if(ans[i]!=0){
for(int j=i;j>=0;j--)
cout<<ans[j];
break;
}
if(i==0){
cout<<0;
}
}
cout<<endl;
}
return 0;
}