反转整数
2017-06-26 11:12
218 查看
将一个整数中的数字进行颠倒,当颠倒后的整数溢出时,返回 0 (标记为 32 位整数)。
样例
给定 x = 123,返回 321
给定 x = -123,返回 -321
import java.util.Scanner;
/**
* 将一个整数中的数字进行颠倒,当颠倒后的整数溢出时,返回 0 (标记为 32 位整数)。
样例
给定 x = 123,返回 321
给定 x = -123,返回 -321
*
* @author Dell
*
*/
public class Test413 {
public static int reverseInteger(int n)
{
if(Math.abs(n)<=9)
return n;
int temp=n;
if(temp<0)
{
temp=Math.abs(temp);
}
long sum=0;
while(temp!=0)
{
int k=temp%10;
temp=temp/10;
if(temp!=0)
sum=(sum+k)*10;
else
{
sum=sum+k;
}
}
if(n>0)
{
if(sum>Integer.MAX_VALUE)
return 0;
else
return (int)sum;
}
else
{ sum=-1*sum;
if(sum<Integer.MIN_VALUE)
return 0;
else
return (int) sum;
}
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
System.out.println(reverseInteger(n));
}
}
样例
给定 x = 123,返回 321
给定 x = -123,返回 -321
import java.util.Scanner;
/**
* 将一个整数中的数字进行颠倒,当颠倒后的整数溢出时,返回 0 (标记为 32 位整数)。
样例
给定 x = 123,返回 321
给定 x = -123,返回 -321
*
* @author Dell
*
*/
public class Test413 {
public static int reverseInteger(int n)
{
if(Math.abs(n)<=9)
return n;
int temp=n;
if(temp<0)
{
temp=Math.abs(temp);
}
long sum=0;
while(temp!=0)
{
int k=temp%10;
temp=temp/10;
if(temp!=0)
sum=(sum+k)*10;
else
{
sum=sum+k;
}
}
if(n>0)
{
if(sum>Integer.MAX_VALUE)
return 0;
else
return (int)sum;
}
else
{ sum=-1*sum;
if(sum<Integer.MIN_VALUE)
return 0;
else
return (int) sum;
}
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
System.out.println(reverseInteger(n));
}
}
相关文章推荐
- 整数反转
- 反转一个整数的位
- 接受整数,然后左右反转
- 递归---把一个整数反转处理
- LeetCode里的7.反转整数问题 Java15行
- 37. 反转一个3位整数
- LintCode之反转整数
- 位运算实现反转字节和求二进制整数中1的个数(无循环)
- 按位反转整数问题
- 给定一个字符串和一个整数k,对字符串开头算起的每2k个字符的前k个字符进行反转。 如果还有少于k个字符,则将其全部撤消。 如果小于2k但大于或等于k个字符,则反转前k个字符,
- 编程之美--反转整数二进制位
- Reverse Integer(整数反转)
- python-反转一个只有3位数的整数。
- 反转一个整数(259----952)
- LeetCode 7. Reverse Integer(整数反转)
- leetcode Reverse Integer 反转整数
- (10.31)反转一个整数数字,输入为32位signed integer。反转后溢出则返回 0 。
- (LeetCode)Reverse Integer --- 反转整数
- 【LeetCode】- Reverse Integer(将一个整数反转)