字符串的回文数
我用StringBuffer 的方法reverse() 就可以写出来了但是如果是纯的数字型的怎么做啊??我想的到是 判读一个数字是否为回文数 System.out.println("请输入一个数");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
int number = Integer.parseInt(str);后面就不知道怎么写了 ? 在google看了一些 基本上字符串的回文数
有的虽然说了数字的回文数 用取模取余的方法 但是关键用户输入的数字是几位你都不知道 你怎么取模取余 对吧反正一时间很乱啊 大家有什么好的方法 告诉我啊
谢谢了
我用StringBuffer 的方法reverse() 就可以写出来了但是如果是纯的数字型的怎么做啊??我想的到是 判读一个数字是否为回文数 System.out.println("请输入一个数");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
int number = Integer.parseInt(str);后面就不知道怎么写了 ? 在google看了一些 基本上字符串的回文数
有的虽然说了数字的回文数 用取模取余的方法 但是关键用户输入的数字是几位你都不知道 你怎么取模取余 对吧反正一时间很乱啊 大家有什么好的方法 告诉我啊
谢谢了
谢谢你啊
这个方法我知道但是我就是想用纯数字型的 怎么做??
不要StringBuffer的方法做
有什么思路吗?
爱莫能助了
#@*(&%@#&%)*#@&%)@
mod 10来获取每一位的值你比如说2578
第一次mod 10能得到8,存在第0个位置
把它除以10,小数部分忽略,就变成257了
再mod 10,得到7,存第1个位置
以此类推
能得到一个数组[8][7][5][2]
然后再逆序把它还原成一个数
即2×1+5×10+7×100+8×1000 = 8725判断8725 和 2578是否相等,如果相等就是一个回文数了
比如a=12321,
a%10,得到最后的1
然后a/=10,得到a=1232;a%10=2,得到2
循环,知道a=0;
It's not hard. Just like 2#'s method, you can transfer the int value to a String, then you know what to do.I have not tested the code, so there might be some mistakes...public boolean reverseTheSame(int intNum){
String input = String.valueOf(intNum); StringBuffer buffer = new StringBuffer(input); String temp = buffer.reverse().toString(); if (input.equals(temp))
return true; return false;
用c之类的语言还是要自己这么处理。
数组用反转的方法吗??? 就想StringBuffer的reverse();
int temp = loopNum;
int[] bitArray = new int[100];
int count = 0;
while (temp != 0) {
bitArray[count] = temp % 10;
temp = temp / 10;
count++;
}
int j = count - 1;
boolean flag = true;
for (int i = 0; i < (count + 1) / 2; i++, j--) {
if (bitArray[i] != bitArray[j]) {
flag = false;
break;
}
}
if (flag) {
System.out.println("it's a loop number");
} else {
System.out.println("it's not a loop number");
}
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
ArrayList array = new ArrayList();
String str = br.readLine();
int num = Integer.parseInt(str);
int ge = num % 10 ;
int shi = num / 10 % 10;
int bai = num /10 / 10;很明显 我这样做不行 如果别人输入了4位数值呢 所以就要加一个未知的数 来求别人输入的数值 对吧头都疼了