题目:
给定一个 32 位有符号整数,将整数中的数字进行反转。
示例 1:
输入: 123 输出: 321
示例 2:
输入: -123 输出: -321
示例 3:
输入: 120 输出: 21
注意:
假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。
#include<math.h>
int reverse(int x) {
long fan=0;
int s;
while(x) // 反转整数
{
s=x%10;
fan=fan*10+s;
x=x/10;
}
if(fan> pow(2,31) || fan<-pow(2,31)) // 超出范围的结果 输出为0;
{
return 0;
}
else return fan;
}
此题目整体难度没有,遇到唯一的问题就是 [−231, 231 − 1] 这个范围的表达,注意:在C/C++语言中,不能够直接使用-2147483648来代替最小负数,因为这不是一个数字,而是一个表达式。最后用到了 幂函数 这个函数才解决的。
幂函数应用需要 头文件 #include〈math.h〉 pow(2,31) 表示 2的31次放。