学渣带你刷Leetcode0007-整数反转

题目描述

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

示例 1:

输入: 123
输出: 321
 示例 2:

输入: -123
输出: -321
示例 3:

输入: 120
输出: 21
注意:

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-integer
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

白话题目:

一道简单题,就是按位取出后倒置被,或者按照数学的计算一下,具算法部分说明。不过红色的字体部分是个坑,官方已经帮助铺垫,问题不大。

理解:负数的符号对数字结果不影响(二进制的负数以1开始)

-2^31~2^31,或-2147483648~2147483648

下图与题目关系不是太相关,知道总比不知道要好。↓↓

扫描二维码关注公众号,回复: 10399627 查看本文章

类型

16位系统/字节

32位系统/字节

64位系统/字节

char

1

1

1

char*

2

4

8

short

2

2

2

int

2

4

4

long

4

4

8

long long

8

8

8

算法:

论数学的重要性

C语言完成代码

​
#include <stdio.h>
#include <stdlib.h>
int reverse(int x)
{
    long r = 0;
    while (x != 0)
    {
        r = 10*r + x%10;
        x = x/10;
    }
    if (r > pow(2, 31)-1 || r < -pow(2, 31))
        return 0;
    return r;
}
int main()
{
    int x;
    scanf("%d",&x);

    int result=reverse(x);
    printf("%d\n",result);
    return 0;
}

​
发布了15 篇原创文章 · 获赞 1 · 访问量 1247

猜你喜欢

转载自blog.csdn.net/qq_39729096/article/details/105220484