反转整数
#include <stdio.h>
int main() {
int n, reverse = 0, remainder, original;
printf("Enter an integer: ");
scanf("%d", &n);
original = n;
while (n != 0) {
remainder = n % 10;
reverse = reverse * 10 + remainder;
n /= 10;
}
if (original % 10 == 0) {
printf("Reversed number = %d", reverse);
while (original % 10 == 0) {
printf("0");
original /= 10;
}
} else {
printf("Reversed number = %d", reverse);
}
return 0;
}
输出
Enter an integer: 2345 Reversed number = 5432
此程序从用户处获取整数输入。然后使用 while
循环,直到 n != 0
为 false (0)。
在每次循环迭代中,计算 n 除以 10 的余数,并将 n 的值减少十倍。
在循环内部,使用以下方法计算反转后的数字:
reverse = reverse * 10 + remainder;
让我们看看当 n = 2345
时 while
循环是如何工作的。
n | n != 0 | 余数 | 反转 |
---|---|---|---|
2345 | 真 | 5 | 0 * 10 + 5 = 5 |
234 | 真 | 4 | 5 * 10 + 4 = 54 |
23 | 真 | 3 | 54 * 10 + 3 = 543 |
2 | 真 | 2 | 543 * 10 + 2 = 5432 |
0 | 假 | - | 循环终止。 |
最后,将 reverse 变量(其中包含反转后的数字)打印在屏幕上。