leecode---07---数字整除取余操作,取余整除---翻转一个整数复件

https://leetcode.com/problems/reverse-integer/description/

题意

将一个整数进行翻转。

Example 1:

Input: 123

Output: 321

Example 2:

Input: -123

Output: -321

Example 3:

Input: 120

Output: 21

分析

给一个整数,将这个整数进行翻转,从后往前每一位先取余出来。

最后要判断是否越界处理。

代码

class Solution {

public int reverse(int x) {

long result = 0;

//循环处理每一位,将从后往前的每一个位拿出来,然后循环一次乘以10往前靠拢

while (x != 0) {

result = result * 10 + x % 10;

x = x/10;

}

//最后判断是否越界

if (result > Integer.MAX_VALUE || result < Integer.MIN_VALUE) return 0;

return (int)result;

}

}

原文地址:https://www.cnblogs.com/buptyuhanwen/p/8905991.html

时间: 2024-07-31 18:05:09

leecode---07---数字整除取余操作,取余整除---翻转一个整数复件的相关文章

leetcode——Divide Two Integers 不用乘除取余操作求除法(AC)

Divide two integers without using multiplication, division and mod operator. 题目只有简单的一句话,看起来可真简单啊,呵呵,假象.这个题目的难点在于对时间效率的限制和边界值的测试.第一印象肯定是循环一个个把因子从被除数中减去不久行了么,可是对于比如INT_MAX/1或者INT_MIN/1之类的执行时间长的可怕,会超出时间限制.改善时间效率的思路是参考网上别人代码,将因子不断乘以2(可以通过移位实现,同时结果也从1开始不断

Java之取余操作 &quot;%&quot;

取模运算与取余运算两个概念有重叠的部分但又不完全一致.主要的区别在于对负整数进行除法运算时操作不同. 对于整形数a,b来说,取模运算或者求余运算的方法都是: 1.求 整数商 c = a / b: 2.计算模或者余数 r = a - c* b . 取模运算和取余运算在第一步不同: 取余运算在取c值时,向0方向舍入:而取模运算在取c值时,是向负无穷方向舍入 各个环境下运算符%的含义不同,C/C++,Java为取余,python为取模 Java取余运算规则如下: a%b = a - (a/b)*b 原

数论-取模,求余?

看了ACM-ICPC系列之数论中的定义,取模运算是这样子的. 给定一个正整数p,任意一个整数n,一定存在等式 : n = kp + r : 其中 k.r 是整数,且 0 ≤ r < p,则称 k 为 n 除以 p 的商,r 为 n 除以 p 的余数. 言下之意就是,余数肯定>0 于是很不开心,写了个程序测试下: 1     printf("(7)MOD5 =%d\n",7%5); 2 printf("(-7)MOD5 =%d\n",(-7)%5); 3

队列中取最大值操作

假设有这样一个拥有3个操作的队列: 1.EnQueue(v):将v加入队列 2.DeQueue:使队列中的队首元素删除并返回元素 3.MaxElement:返回队列中的最大元素 请设计一种数据结构和算法,让MaxElement操作的时间复杂度尽可能低 研究这个问题之前,先研究两个子问题: 1.设计一个包含min操作的栈 2.用栈实现队列 一.设计一个包含min操作的栈 考虑给栈增加一个成员变量MinValue,有元素入栈的时候,将入栈元素与MinValue相比,如果小于MinValue,用入栈元

java中求余%与取模floorMod的区别

初学java的时候接触的%这个符号 百分号? 求余? 取模? 我只知道不是百分号,好像是求余,听别人那叫求模运算符,跟求余一样,于是我便信了. 思考之后开始迷糊,然后经过多次考证得到以下结论. 首先,%是求余的意思,不是求模的意思.求模不完全等于求余. 首先我们遵守公式: a = b * q + r; 这里的a是被除数,b是除数,q是商,r是余数也可以是模. q= a/b 且 |r| < |b| 于是得到: r = a – (a/b)*b; r的求值公式都是这样,那么求余和求模的区别在哪呢? 1

取模和求余的区别

通常情况下取模运算(mod)和求余(rem)运算被混为一谈,因为在大多数的编程语言里,都用'%'符号表示取模或者求余运算.在这里要提醒大家要十分注意当前环境下'%'运算符的具体意义,因为在有负数存在的情况下,两者的结果是不一样的. 对于整型数a,b来说,取模运算或者求余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余数: r = a - c*b. 求模运算和求余运算在第一步不同: 取模求余运算在取c的值时,向0 方向舍入(fix()函数): 而求余取模运算在计算c的值时,向

【编程之美】3.7 队列取最大值操作问题 ☆

之前写过栈的,以为队列的也一样,结果一点都不一样.写了好久啊. 因为栈是后进先出,先进去的数字不会影响后面的数字:而队列是先进先出,后进去的会受先进入的数字的影响. 比如: (先)  1 9 3 8 4 (后)  这样的序列 栈存储        1 9               就可以了,因为9弹出后,自然 1 就是最大的 队列则不行,如果按上面存储9弹出后 剩下 3 8 4,8是最大的,没有存储. 我的方法,保存一个max的队列 入队列时: 如果新值比 max的最前面的元素大,那么把max

ACCESS常用数字类型的说明和取值范围

下面是ACCESS常用数字类型的说明和取值范围列表明供参考 数字类型                 范围 Byte(字节)            介于 0 到 255 之间的整型数. Integer(整型)          介于 –32,768 到 32,767 的短整型数. Long(长整型)         介于 –2,147,483,648 到 2,147,483,647 的长整型数. Currency(货币)      介于-922,337,203,685,477.5808 到 92

编程之美之队列中取最大值操作

问题: 假设有这样一个拥有3个操作的队列: 1. EnQueue(v): 将v加入队列中 2. DeQueue(): 使队列中的队首元素删除并返回此元素 3. MaxElement: 返回队列中的最大元素 设计一种数据结构和算法,让MaxElement操作的时间复杂度尽可能地低. #include<iostream> #include<limits.h> using namespace std; class Stack { public: Stack() { stackTop =