问题描述
输入一个三位正整数,然后与它倒过来的数相加,输出和。
如:输入 167 ,则和为167+761=928。
输入
只有一行,一个三位正整数。
输出
一个正整数
样例
输入
167
输出
928
代码1
#include <iostream>
int main() {
int n;
std::cin >> n;
// 计算倒过来的数
int reverse = 0;
int temp = n;
while (temp > 0) {
reverse = reverse * 10 + temp % 10;
temp /= 10;
}
// 计算和
int sum = n + reverse;
std::cout << sum << std::endl;
return 0;
}
这里我们先通过循环计算出输入的三位正整数的倒过来的数。然后将输入的数与倒过来的数相加得到和,最后输出结果。在计算倒过来的数时,我们每次取余数得到最后一位的数字,然后将结果乘以10并加上新的个位数,重复这个过程直到将输入的数完全倒过来。
代码2
#include <iostream>
#include <string>
int main() {
std::string input;
std::cin >> input;
// 计算倒过来的数
std::string reverse = "";
for (int i = input.length() - 1; i >= 0; i--) {
reverse += input[i];
}
// 转换为整数,并计算和
int sum = std::stoi(input) + std::stoi(reverse);
std::cout << sum << std::endl;
return 0;
}
这里我们先将输入的三位正整数转换为字符串,然后从字符串的最后一位开始遍历,将每一位的数字依次添加到新的字符串中,得到倒过来的数。然后通过 std::stoi
函数将字符串转换为整数,并将输入的数与倒过来的数相加得到和,最后输出结果。这种方法更加直观易懂,不需要进行数位的拆分和相除操作。