import java.util.*;
/**
* @author admim
*判断一个数是否为回文数
*/
public class A {
public static void main(String[] args) {
// TODO Auto-generated method stub
// int num=2122231222,count=0;
// while(num!=0){
// num=num/10;
// count++;
// }
// System.out.println(count);
A a=new A();
a.palindrome();
}
public void palindrome(){
int count=0,nu=0;
Scanner sc=new Scanner(System.in);
System.out.println("Enter a number ");
try {
int num=sc.nextInt();
int num1=num; //防止后面num被修改,无法再使用。。。这里是不是可以用static关键字修饰???
int num2=num;
int num3=num;
while(num!=0){
num=num/10;
count++;
}
int a[]=new int[count]; //用于存放整数的每一位,从最高位开始存储
int b[]=new int[count]; //用于存放整数的每一位,从最地位开始存储
for(int i=0;i<count;i++){
a[i]=num1/(10^(count-1-i));
num1=num1%(10^(count-1-i));
}
for(int j=0;j<count;j++){
b[count-1-j]=num2/(10^(count-1-j));
num2=num2%(10^(count-1-j));
}
for(int k=0;k<count;k++){
if(a[k]==b[k]){
nu++; //判断a[k]=b[k]一共成立了几次。
}
}
if(nu==count){
System.out.println("the number "+num3+" is a palindrome");
}else{
System.out.println("the number "+num3+" is not a palindrome");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
------解决方案--------------------
package com.victor.test;
import java.lang.reflect.Array;
import java.util.*;
import java.math.*;
/**
* @author admim 判断一个数是否为回文数
*/
public class StringTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
// int num=2122231222,count=0;
// while(num!=0){
// num=num/10;
// count++;
// }
// System.out.println(count);
StringTest a = new StringTest();
a.palindrome();
}
public void palindrome() {
int count = 0, nu = 0;
Scanner sc = new Scanner(System.in);
System.out.println("Enter a number ");
try {
int num = sc.nextInt();
int num1 = num; // 防止后面num被修改,无法再使用。。。这里是不是可以用static关键字修饰???
int num2 = num;
int num3 = num;
while (num != 0) {
num = num / 10;
count++;
}
// 用于存放整数的每一位,从最高位开始存储
int a[] = new int[count];
// 用于存放整数的每一位,从最低位开始存储
int b[] = new int[count];
for (int j = 0; j < b.length; j++) {
b[j] = (num2 / (int) (Math.pow(10, j))) % 10;
}
for(int i=0;i<a.length;i++){
a[count-i-1]=b[i];
}
for (int k = 0; k < count; k++) {
if (a[k] == b[k]) {
nu++; // 判断a[k]=b[k]一共成立了几次。
}
}
if (nu == count) {
System.out.println("the number " + num3 + " is a palindrome");
} else {
System.out.println("the number " + num3
+ " is not a palindrome");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
你求次方的方法不对,求次方的方法是math.pow(a,b) a的b次方,帮你改正了。