题解 | #数字反转#
数字反转
http://www.nowcoder.com/practice/2687c5c174cb4f938bdae01f0a19490c
不讲武德法
/*
描述
12翻一下是21,34翻一下是43,12+34是46,46翻一下是64,现在又任意两个正整数,问他们两个数反转的和是否等于两个数的和的反转。
输入描述:
每行两个正整数a和b(0<a,b<=10000)。
输出描述:
如果满足题目的要求输出a+b的值,否则输出NO。
*/
#include<iostream> #include<string> #include<algorithm> using namespace std; int main() { string numA, numB,invA,invB,sumAB; int reverse_sum = 0, sum_reverse = 0, num_sum; while (cin >> numA >> numB) { invA = numA; invB = numB; reverse(invA.begin(),invA.end()); reverse(invB.begin(), invB.end()); reverse_sum = atoi(invA.c_str()) + atoi(invB.c_str()); num_sum = atoi(numA.c_str()) + atoi(numB.c_str()); sumAB = to_string(num_sum); reverse(sumAB.begin(), sumAB.end()); sum_reverse = atoi(sumAB.c_str()); if (sum_reverse==reverse_sum) { cout << num_sum << endl; } else cout << "NO" << endl; } return 0; }