力扣7--整数反转

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

示例 1:

输入: 123
输出: 321

输出: 321

示例 2:

输入: -123
输出: -321
注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

解题思路:
1、将传入数据最低为提出赋值到最后的结果数据上
2、传入数据除十,再提出最低位,结果数据乘十再加上新提出来的值
3、循环执行,直到传入的值为0;
代码

int reverse(int x){
    double result = 0;
    for (; x;x = x / 10) {
            result = result * 10;       
            result += (x % 10);    
            }    
    if(result>INT_MAX||result<INT_MIN) {
            return 0;    
            }    
    else {
            return (int)result;
  	}
 }
### C语言实现整数转字符串以判断回文数 在C语言中,可以使用标准库函数 `sprintf` 将整数转换为字符串,然后通过双指针法来判断该字符串是否为回文。这种方法的逻辑清晰且易于实现。以下是一个完整的代码示例: ```c #include <stdio.h> #include <string.h> #include <stdbool.h> bool isPalindrome(int x) { if (x < 0) { // 负数不是回文数 return false; } char str[20]; // 定义一个足够大的字符数组存储整数的字符串形式 sprintf(str, "%d", x); // 将整数x转换为字符串并存储到str中[^3] int len = strlen(str); // 获取字符串长度 for (int i = 0; i < len / 2; i++) { // 使用双指针法检查回文性 if (str[i] != str[len - 1 - i]) { // 如果两端字符不相等,则不是回文 return false; } } return true; // 如果所有对应字符都相等,则是回文 } int main() { int number; printf("请输入一个整数:"); scanf("%d", &number); if (isPalindrome(number)) { printf("%d 是回文数。\n", number); } else { printf("%d 不是回文数。\n", number); } return 0; } ``` 上述代码中,`sprintf` 函数用于将整数转换为字符串[^3],而 `strlen` 函数用于获取字符串长度。通过双指针法逐一比较字符串两端的字符,如果发现不相等的情况,则返回 `false`;否则返回 `true`。 此外,力扣官方解答提供了一种不使用字符串的整数反转方法[^1],但此方法可能会因整数溢出而失败。因此,在某些场景下,将整数转换为字符串再进行判断可能更为安全。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值