反序输出
tip
设N是一个四位数,它的9倍恰好是其反序数(例如:1234的反序数是4321),求N的值
参考代码
#include <bits/stdc++.h>
using namespace std;
int main() {
for (int i = 1000; i <= 9999; i++) {
int x = i * 9, y = 0;
while (x > 0) {
y = y * 10 + x % 10;
x /= 10;
}
if (i == y) {
cout << i << endl;
}
}
return 0;
}
题解
反序输出可以分为两部分:拆分以及反序拼接
-
拆分:n位整数求余10可以得到最后一位,再除以10可以得到除去上述最后一位之后的n-1位整数,循环得到每一个最后一位,完成拆分
while (x > 0) {
y = y * 10 + x % 10; // 拼接与拆分
x /= 10;
} -
拼接:将s中的数字拼接成整数
int sum = 0;
for (int i = 0; i < s.size(); i++) {
sum = sum * 10 + s[i];
}