这是源代码
这是测试的结果,就是不知道哪里错了,请各位帮我看看吧,愁死我了,请各位详细的说说,要是能改正代码,那就更好了
下面是贴的完整代码:package jichusuanfa;
import java.util.Scanner;
public class Ex25 {
//题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入一个五位数:");
int num = scan.nextInt();
int[] a = new int[5];
int[] b = new int[5];
if(num < 10000 && num >100000 ) {
System.out.println("输入的不是5位数");
System.exit(-1);
} else {
for(int i=4;i>1;i--) {
a[i] = (int)(num/(long)Math.pow(10, i));
}
}
for(int i=0,j=4;i<5;i++,j--) {
b[i] = a[j];
}
if(a[0] == b[0] && a[1] == b[1]) {
System.out.println(num + "是回文");
} else {
System.out.println(num + "不是回文");
}
}
}
for(int i=4;i>1;i--) {
a[i] = (int)(num/(long)Math.pow(10, i));
}
这部分应该有问题,a的长度已经不对了,i从4到1也就4位,何况你是大于1,这部分已经不对了
刚学了两天java,
错误在这里:
for(int i=4;i>1;i--) {
a[i] = (int)(num/(long)Math.pow(10, i));
i>1改成i>0就好了
for(int i=4;i>0;i--) {
a[i] = (int)(num/(long)Math.pow(10, i));
这是我在main函数里的代码片段,互相参考一下。
Scanner input=new Scanner(System.in);
System.out.println("请输入回文数:");
int hw=input.nextInt(),HW[]=new int[5],i=0,symbol=0;
while(hw!=0){
HW[i]=hw%10;
hw/=10;
i++;
}
for(int j=0,k=HW.length-1;j<k;j++,k--) {
while (HW[j]!=HW[k]){System.out.println("不是回文数");symbol++;break;}
}
while (symbol==0){System.out.println("是回文数");break;}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入一个五位数:");
int num = scan.nextInt();
int[] a = new int[5];
int[] b = new int[5];
if(num < 10000 && num >100000 ) {
System.out.println("输入的不是5位数");
System.exit(-1);
} else {
for(int i=4;i>0;i--) {
a[i] = (int)(num/(long)Math.pow(10, i));
}
}
for(int i=0,j=4;i<5;i++,j--) {
b[i] = a[j];
}
if(a[4] == b[0] && a[3] == b[1]) {
System.out.println(num + "是回文");
} else {
System.out.println(num + "不是回文");
}
}