黑马程序员技术交流社区
标题:
java学习中很少见的算法编程题
[打印本页]
作者:
zhaodecang
时间:
2016-7-18 23:08
标题:
java学习中很少见的算法编程题
一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
import java.util.Scanner;
public class Twenty_fifthPalindrom {
static int[] a = new int[5];
static int[] b = new int[5];
public static void main(String[] args) {
boolean is =false;
Scanner s = new Scanner(System.in);
long l = s.nextLong();
if (l > 99999 || l < 10000) {
System.out.println("Input error, please input again!");
l = s.nextLong();
}
for (int i = 4; i >= 0; i--) {
a[i] = (int) (l / (long) Math.pow(10, i));
l =(l % ( long) Math.pow(10, i));
}
System.out.println();
for(int i=0,j=0; i<5; i++, j++) {
b[j] = a[i];
}
for(int i=0,j=4; i<5; i++, j--) {
if(a[i] != b[j]) {
is = false;
break;
} else {
is = true;
}
}
if(is == false) {
System.out.println("is not a Palindrom!");
} else if(is == true) {
System.out.println("is a Palindrom!");
}
}
}
复制代码
答案不是唯一的,有更好的解决方案请指教
作者:
M_J
时间:
2016-7-19 01:07
本帖最后由 M_J 于 2016-7-19 01:09 编辑
package youyisi;
import java.util.Scanner;
//判断任意5位数是否为回文数
public class HuiWen2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个5位整数");
int m = sc.nextInt();
if(m<10000 || m>99999){
System.out.println("您输入的数不是5位整数,请重新输入!");
}
String sm = Integer.toString(m);
String ss = "";
for(int i=sm.length()-1;i>=0;i--){
ss +=sm.charAt(i);
if(sm.equals(ss)){
System.out.println(m+"是回文数");
}
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2