把两个三位数翻转后直接比较大小。
OJ: luogu
题目 ID: P7257
难度:入门
标签:模拟
日期: 2026-06-18 20:18
题意
给出两个三位正整数,把它们分别翻转后,输出翻转结果中较大的那个。
思路
先看一个可以直接验证想法的朴素解:
这题直接按题意实现即可。 对每个数不断取个位,把个位接到新数末尾,就能得到翻转后的结果。
cpp
#include <bits/stdc++.h>
using namespace std;
int reverse_num(int x) {
int y = 0;
while (x > 0) {
y = y * 10 + x % 10;
x /= 10;
}
return y;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int a, b;
cin >> a >> b;
cout << max(reverse_num(a), reverse_num(b)) << '\n';
return 0;
}因为输入规模只有两个三位数,所以不需要任何优化。 把翻转过程封装成一个小函数,代码最清楚。
代码
cpp
#include <bits/stdc++.h>
using namespace std;
int reverse_num(int x) {
int y = 0;
while (x > 0) {
y = y * 10 + x % 10;
x /= 10;
}
return y;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int a, b;
cin >> a >> b;
cout << max(reverse_num(a), reverse_num(b)) << '\n';
return 0;
}复杂度
每个数最多处理 3 位,时间复杂度是
总结
这题就是按位翻转和比较大小,照着定义写就行。