示例:

例如:给定数“456”,需返回“654”,给定“-876”,则需返回“-678”

注意:

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

解答(这篇文章思路分析还行,代码写的需要提高):

看到题意,我们知道:

(1)注意 X 的 正负 ,(若为 负数 ,为了防止做除法时(向下取整),取其绝对值 ,)用一个数 记录 X的状态

(2)首先需要将给定的数 X 的个位、十位 分隔开,

(3)再将分隔开的 位数 翻转

(4)将翻转好的 位数 ,进行组合,组合成为一个新的 数

(5)此时,用(1)中 记录数 判断 X的状态

(6)检查 翻转 后的值 是否 溢出 (5)和(6)可互换

代码如下:

“标头.h”

#pragma once
#include<stdio.h>
#include<Windows.h>
#include<math.h>
int reverse(int x) {
    //如果 -10 < x < 10 表明 x为个位数,无需翻转
    if (x<10 && x >-10)
        return x;
    //翻转后的每一位存储位置
    int kk[32] = { 0 };
    int i = 0;
   //y 为检验x 是正 是负
    int y = 1;
    //如果x为负,则使用其y 记录,用x的绝对值做运算
    if (x<0)
    {
        y = x;
        x = -1 * x;
    }
    // 计算出翻转后的位置,
    for (i = 0; x>9; i++)
    {
        kk[i] = x % 10;
        x = x / 10;
    }
    // 最后一位 记录 x 的 最高位
    kk[i] = x;
    int c = 0;
    c = i;
    int dd = 0;
    int j = 0;
    // 计算翻转后的数的大小( 前面单纯计算翻转后的每一位所在位置)
    for (j = 0; j <= c; j++)
    {
        dd = dd + kk[i--] * pow(10, j);
    }
    // y 为检验数,若y <0 则表明 x 是复数,翻转后依旧
    if (y<0)
        dd = -1 * dd;
    // 若 翻转后 32位数  溢出,则将翻转后的数,置为0
    if (dd>pow(2, 31) || dd <= -1 * pow(2, 31))
        dd = 0;

return dd;
}

void test()
{
    int h[3] = { -9, 1534236469, 789 };
    int i = 0;
    for (i = 0; i < 3; i++)
    {
        int m = reverse(h[i]);
        printf("\t原:%d \n\t现: %d \n ----------\n", h[i], m);
    }
}

源文件:"main.c"

#include"标头.h"

int main()
{
    test();
    system("pause");
    return 0;
}

程序结果如图:

给定一个 32 位有符号整数,将整数中的数字进行反转。相关推荐

  1. 给定一个32位有符号整数,将整数中的数字进行翻转

    给定一个32位有符号整数,将整数中的数字进行翻转 解题思路就是不断的求模,然后取余,然后注意溢出问题: 代码: #include<stdlib.h> #include<stdio.h ...

  2. 【第75题】给定一个字符串,将它转换成整数

    文章目录 一.题目描述 二.解题思路 三.代码详解 一.题目描述   实现一个myAtoi(string s)函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数 ...

  3. c++ 32位有符号的整数_【LeetCode】字符串分类字符串转换整数 (atoi)

    " 摘要:本文主要讲述LeetCode字符串分类字符串转换整数 (atoi)解法.主要内容如下: 题目 示例 解题 " 01 - 题目 请你来实现一个 atoi 函数,使其能将字符 ...

  4. 32位有符号整数_[LeetCode] 8. 字符串转换整数 (atoi)

    题目链接:https://leetcode-cn.com/problems/string-to-integer-atoi/ 题目描述: 请你来实现一个 atoi 函数,使其能将字符串转换成整数. 首先 ...

  5. 32位有符号整数_008. 字符串转换整数 (atoi) | Leetcode题解

    点击上方"蓝色字体",选择"设为星标" 每天复习一道面试题,轻松拿大厂Offer~ 题目描述: 请你来实现一个 atoi 函数,使其能将字符串转换成整数. 首先 ...

  6. c语言整形符号位_C语言中32位有符号整数如何定义

    展开全部 根据计算机系统.编译系统的不同,32位有符号整数的定义会略有差异,通常的做法32313133353236313431303231363533e59b9ee7ad943133343136363 ...

  7. 给定一个10位的整数组成的串,形式如: d1d2d3d4d5d6d7d8d9d10 。 其中最后的一位(即 )是校验和,其使用以下运算规则以前面的9位上的整数作为参数获得结果

    package Second;import java.util.InputMismatchException; import java.util.Scanner;public class Demo4 ...

  8. 计算一个 32 位无符号整数有多少个位为 1

    http://blog.csdn.net/rappy/article/details/1788969 引用: Counting out the bits     可以很容易的判断一个数是不是2的幂次: ...

  9. 【LeetCode】【Java】13. 罗马数字转整数——给定一个罗马数字,将其转换成整数。输入确保在 1 到 3999 的范围内。

    13. 罗马数字转整数 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 ...

最新文章

  1. 基于RDKit探索DrugBank(demo)
  2. junit单元测试报错InvalidTestClassError: Invalid test class
  3. 第三次学JAVA再学不好就吃翔(part63)--String和int的相互转换
  4. USACO2.4のP1522-牛的旅行(Cow Tours)【最短路Flody】
  5. Java文件快速copy复制
  6. 关于编程等宽字体 Cascadia Code
  7. Android 自定义控件之---3D画廊
  8. 突破领英限制如何查找非好友电话,邮箱技巧
  9. 学习笔记(02):【中国PHP教育大牛高洛峰】亲授php教程-PHP整型(integer)和浮点型(float或double)...
  10. 为您的创业公司推荐5款类Slack开源协作工具
  11. Java WebSocket 基础 建立端点
  12. 小波变换(wavelet transform)的通俗解释(一)
  13. 绝对值编码器单圈和多圈的区别
  14. iptables火墙服务
  15. 美国股市入门一:基本概念介绍
  16. Macbook terminal: No application knows how to open问题
  17. 将微服务应用于物联网
  18. linux显示启动logo源码分析以及修改显示logo
  19. OpenCV数字分割
  20. pmoA+16S测序+qPCR溶洞甲烷氧化菌的分布

热门文章

  1. Bzoj1758: [Wc2010]重建计划
  2. 蜻蜓特派员 Windows XP SP3 纯净终结版
  3. R语言Excel的读写
  4. 基金 、 社保和QFII等机构的重仓股排名评测
  5. 16k a4_A4纸和16K的纸张大小有没有区别
  6. 浅谈短视频背后的社会道德伦理问题(个人观点,仅供参考)
  7. 字体大宝库:35款时尚的英文简历字体下载
  8. css过滤白色,使用CSS3模糊滤镜时,白色模糊的图像?
  9. 线性代数学习笔记——行列式(针对期末与考研)
  10. 对Dataframe数据Excel进行升序降序排列