题目来源于力扣–https://leetcode-cn.com/
从获取整数的低位开始,然后一直到最高位,首先是取余获取最低位,然后整除再取余,依次类推,获取整数的每位数字,但是这个题要求翻转后的数字不能超过int所存储的最大数字,且要求环境不能存储64位数字,这边我是参考的,力扣的官方解析,题目解析请点击此处
加上判断最后如图过程就实现了翻转:
main函数代码
#include<stdio.h>
#include<limits.h>
int reverse(int x);
int main(){
int x = 1534236469;
int newNum = reverse(x);
printf("%d",newNum);
return 0;
}
实现翻转代码
int reverse(int x){
long newNumber = 0;
while(x!=0){
// 进行判断,有没有超出int的最大范围
if (newNumber < INT_MIN / 10 || newNumber > INT_MAX / 10) {
return 0;
}
int temp = x%10;
newNumber = newNumber*10+temp;
x = x/10;
}
return newNumber;
}