30. 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

示例:输入: 123输出: 321示例:输入: -123输出: -321示例:输入: 120输出: 21代码如下(示例):#include <stdio.h>#include <limits.h> //<limits.h> 头文件中的 INT_MAX 和 INT_MIN//int my_reverse(int x) { //定义long类型的变量 long n = 0; while(x != 0) { n = n*10 + x%10; x /= 10; } return (int)n == n ? n:0; }int reverse(int num) { int reversedNum = 0; while (num != 0) { // 检查反转后的整数是否会溢出 if (reversedNum > INT_MAX / 10 || reversedNum < INT_MIN / 10) { return 0; } reversedNum = reversedNum * 10 + num % 10; num /= 10; } return reversedNum;}int main() { int num; printf(“input: “);//请输入一个32位有符号整数 scanf(“%d”, &num); int reversedNum = reverse(num); printf(“reversedNums: %d\n”, reversedNum);//反转后的整数为 return 0;}//注意:代码中使用了 <stdio.h> 头文件来引入输入输出函数(如 printf、scanf)的定义,并利用 <limits.h> 头文件中的 INT_MAX 和 INT_MIN 来获取有符号整数的最大值和最小值。

发表评论