一个比较笨的方法,算a+b 倒叙相加

来源:互联网 发布:人工智能不需要约束 编辑:程序博客网 时间:2024/05/21 01:51

A+B Problem(V)

时间限制:1000 ms  |  内存限制:65535 KB
难度:1
描述
做了A+B Problem之后,Yougth感觉太简单了,于是他想让你求出两个数反转后相加的值。帮帮他吧
输入
有多组测试数据。每组包括两个数m和n,数据保证int范围,当m和n同时为0是表示输入结束。
输出
输出反转后相加的结果。
样例输入
1234 1234125 1170 0
样例输出
86421232
来源

Yougth原创

// 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;
}


原创粉丝点击