问题描述
任意读入一个四位整数,颠倒后输出。
输入
输入一行,只有一个整数 x(1000≤x≤9999) 。
输出
输出只有一行,包括 1 个整数。
样例
输入
4567
输出
7654
输入
1600
输出
61
代码1
#include <iostream>
#include <string>
#include <algorithm>
int main() {
int x;
std::cin >> x;
// 将整数转换为字符串
std::string str = std::to_string(x);
// 颠倒字符串
std::reverse(str.begin(), str.end());
// 将颠倒后的字符串转换为整数
int reverse = std::stoi(str);
std::cout << reverse << std::endl;
return 0;
}
这里我们先将输入的四位整数转换为字符串,然后使用 std::reverse
函数颠倒字符串中的字符顺序。然后我们将颠倒后的字符串转换回整数,最后输出结果。通过字符串的方式处理颠倒操作更加直观易懂。
代码2
#include <iostream>
int main() {
int x;
std::cin >> x;
// 颠倒数位
int reverse = 0;
while (x > 0) {
reverse = reverse * 10 + x % 10;
x /= 10;
}
std::cout << reverse << std::endl;
return 0;
}
这里我们通过取余和整除操作来颠倒输入的四位整数。我们从最低位开始取余,得到最低位的数字,然后将结果乘以10并加上新的个位数,重复这个过程直到将输入的数完全倒过来。最后输出结果。这种方法更加直观易懂,不需要进行字符串的转换和颠倒操作。