A+B Problem(V)
-
描述
-
做了A+B Problem之后,Yougth感觉太简单了,于是他想让你求出两个数反转后相加的值。帮帮他吧
-
输入
- 有多组测试数据。每组包括两个数m和n,数据保证int范围,当m和n同时为0是表示输入结束。 输出
- 输出反转后相加的结果。 样例输入
-
1234 1234 125 117 0 0
样例输出
-
8642 1232
来源
// a加b.cpp : Defines the entry point for the console application.
//
#include<iostream>
using namespace std;
#include<string.h>
//#include<string>
int main()
{
int i,j,k,d,e,f;
char a[50],b[50],c[50];
while(cin>>a>>b&&!(a[0]=='0'&&b[0]=='0'))
{
f=strlen(a);
d=strlen(b);
for(i=0,j=0,k=0,c[0]='0';i<f||j<d;i++,j++,k++) //前车之鉴,有时候所谓的经验也会害了你,特别是对于熟悉的题目,很可能就会设置一个不起眼的陷阱,认真读每一题,认真做每一题。所谓初学者心态!!!
{
if(i>=f)a[i]='0';
if(j>=d)b[j]='0';
e=a[i]+b[j]+c[k]-'0'-'0'-'0';
if(e>9){c[k]=e-10+48;c[k+1]='1';} //现在草稿纸上有个明确的提纲,不然做题就会像无头苍蝇,找不到方向,乱串,把自己撞的头昏脑胀既消耗了时间和精力也没有做出什么。先有清晰的思路!!!
else{ c[k]=e+48;c[k+1]='0';}
}
while((k!=-1)) //输出字符串c 注意,数字的首位不能为0,还有while里面的是真才行,不一定非要是while(k),当k为0的时候就不成立了
{
if(c[k]=='0'){ k--;continue;}
else
{
for(i=k;i>=0;i--)
cout<<c[i];
cout<<endl;
break;
}
}
}
return 0;
}