颠倒正整数程序是什么

时间:2025-01-27 14:55:54 手机游戏

```c

include

int reverseInteger(int x) {

int result = 0;

while (x != 0) {

int remainder = x % 10;

if (result > Integer.MAX_VALUE / 10 || (result == Integer.MAX_VALUE / 10 && remainder > 7)) return 0;

if (result < Integer.MIN_VALUE / 10 || (result == Integer.MIN_VALUE / 10 && remainder < -8)) return 0;

result = result * 10 + remainder;

x = x / 10;

}

return result;

}

int main() {

int number;

printf("请输入一个正整数: ");

scanf("%d", &number);

int reversedNumber = reverseInteger(number);

if (reversedNumber != 0) {

printf("颠倒后的正整数是: %d\n", reversedNumber);

} else {

printf("颠倒后的正整数溢出\n");

}

return 0;

}

```

解释

reverseInteger函数:

该函数接受一个整数`x`作为参数,并返回其颠倒后的整数。

使用一个`while`循环来遍历整数`x`的每一位数字。

在每次迭代中,取出最后一位数字(`x % 10`),并将其添加到结果`result`中。

更新`x`,去掉最后一位数字(`x /= 10`)。

在每次迭代中,检查结果是否会在颠倒后溢出32位整数的范围。如果溢出,则返回0。

main函数:

提示用户输入一个正整数。

调用`reverseInteger`函数,并将结果存储在`reversedNumber`中。

如果`reversedNumber`不为0,则输出颠倒后的正整数;否则,输出溢出信息。

这个程序可以处理32位有符号整数的颠倒,并在结果溢出时返回0。