1 题目
(题来源牛客网华为2019秋招笔试题)
1.1 问题描述
输入两个正整数a和b,然后分别将它们的数字按照高位在右边的方式反转求和。
例如:reverseAdd(123,456) == 321 + 654 = = 975;
1.2 输入示例
123 456
1.3 输出示例
2 问题分析
可以先用string将两个数记录下来,然后从右到左遍历每一个string,相当于遍历其代表整数的从低到高,相当于把右边的地位提到左边。此时每一个是一个char类型的字符记为c,c - '0'就代表相应的数字,然后再乘以10,每隔一位相差十倍。
3 代码编写
#include <iostream>
using namespace std;
void test(){
string a,b;
while(cin>>a>>b){
int x = 0,y = 0;
if(a[0] == '0' || b[0] == '0')
break;
for(int i = a.size()-1;i >= 0;i--)
x = x*10 + a[i] - '0';
for(int i = b.size()-1;i >= 0;i--)
y = y*10 + b[i] - '0';
cout<<x + y<<endl;
}
}
int main()
{
test();
return 0;
}