题目:
输入一个正整数,将其数字逆转。如:12345 处理后 54321
这个题很简单,但是我做不出一个通用公式(如3位数,5位数,7位数的方法不太一样),求高手指点逻辑思维。如果固定三位数,我就是用数组,提取余数,然后颠倒排列输出……求如何在不确定输入几位数的情况下,顺利逆转数字?
输入一个正整数,将其数字逆转。如:12345 处理后 54321
这个题很简单,但是我做不出一个通用公式(如3位数,5位数,7位数的方法不太一样),求高手指点逻辑思维。如果固定三位数,我就是用数组,提取余数,然后颠倒排列输出……求如何在不确定输入几位数的情况下,顺利逆转数字?
解决方案 »
- 别过大脑,凭直觉给出你的答案
- 各位,能不能用ObjectInputStream去封装DataInputStream去读取发过来的对象
- 关于STRUTS标签的一个有点点深度的问题,至少对我来说很有深度 - -
- Eclipse处理命令行参数?
- 我把.wav文件转换成了byte[],java有什么api以byte[]做参数来播放音乐
- JAVA是不是没人学了呀,最近贴子已经很少了。。。
- 请教,如何动态创建组件对象。送分!
- 如何实现和access数据库的连接?
- 如何获取xml的节点的“路径”
- 关于equals算法的疑惑
- java如何读取properties中的设置的int型数据
- java与vc如何传递数据结构?
package org.cai.bean;
public class Test {
public static int reverseInt(int value){
String tmp = String.valueOf(value) ;
StringBuffer sb = new StringBuffer(tmp) ;
tmp = sb.reverse().toString() ;
return Integer.valueOf(tmp) ;
}
public static void main(String[] args) { System.out.println("123 -->" + Test.reverseInt(123)) ;
System.out.println("4560 -->" + Test.reverseInt(4560)) ; }}123 -->321
4560 -->654
public class Test {
public static int reverseInt(int value){
String tmp = String.valueOf(value) ;
char[] arr = tmp.toCharArray() ;
char ch ;
for (int i = 0; i < arr.length/2; i++){
ch = arr[i] ;
arr[i] = arr[arr.length-1-i] ;
arr[arr.length-1-i] = ch ;
}
tmp = new String(arr) ;
return Integer.valueOf(tmp) ;
}
public static void main(String[] args) { System.out.println("123 -->" + Test.reverseInt(123)) ;
System.out.println("4560 -->" + Test.reverseInt(4560)) ; }}
结果一样啦
public class CsdnReverseInt
{
public static void main(String[] args)
{
Scanner scan=new Scanner(System.in);
System.out.println("请输入一个整数:");
int toBeChanged= scan.nextInt();
String temp=String.valueOf(toBeChanged); //先变成一个字符串。
int len=temp.length(); //得到数字的位数。
int result=0; //保存翻转后的结果。
for(int i=0;i<len;i++) //循环一位一位计算。
{
result=result*10+(toBeChanged%10); //这句要仔细理解。比如123,
toBeChanged=toBeChanged/10; //第一次计算是resulut=0*10+3=3;
} //地2次就是resulut=3*10+2=32;
//第3次是resulut=32*10+1=321;
System.out.println("数字 "+temp+" 被翻转后是: "+result); //输出。
}
}
这个方法好 tmp = sb.reverse().toString() ;//调用方法 把字符翻转
public class ReversalStr {
//temp 传0
public static String reversal(String str , int temp){
if(temp == str.length() / 2)
return str ;
int last = temp == 0 ? str.length() -1 : str.length() - temp - 1;
return reversal(str.substring(0, temp) + str.charAt(last) + str.substring(temp + 1 , last) + str.charAt(temp) + str.substring(last + 1, str.length()),++temp);
} public static void main(String[] args) {
String str1 = "123456";
String str2 = "123456789";
System.out.println(reversal(str1 , 0 ));
System.out.println(reversal(str2 , 0 ));
}}Console 654321
987654321
return Integer.valueOf(new StringBuffer().append(value).reverse().toString());
}
package org.cai.bean;
public class Test {
public static int reverseInt(int value){
String tmp = String.valueOf(value) ;//整数换成为字符串
StringBuffer sb = new StringBuffer(tmp) ;//构建StringBuffer因为StringBuffer有互换元素位置的方法
tmp = sb.reverse().toString() ;//互换元素位置
return Integer.valueOf(tmp) ;
}
public static void main(String[] args) { System.out.println("123 -->" + Test.reverseInt(123)) ;//不解释
System.out.println("4560 -->" + Test.reverseInt(4560)) ; }}