问题描述
1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。
输出格式
按从小到大的顺序输出满足条件的四位十进制数。
这个题,我最先想到的就是之前的题里学到的,求出每一位的数字,然后,判断。(好吧,这也是我最后采取的方式)
但我觉得,还是要遵循老路子,先从网上学习一些新方法。于是我看到了不少。
先放上我的代码:
public class huiwenNum {
public static void main(String args[]){
for (int i=1000;i<10000;i++){
int ge=i/1000;
int shi=i%1000/100;
int bai=i%100/10;
int qian=i%10;
int a=qian*1000+bai*100+shi*10+ge;
if (a==i){
System.out.println(i);
}
}
}
}
再看看其他的方法。就是转换成字符串进行判断。这就涉及到几个新技能。代码中介绍
public class huiwenNum {
public static void main(String args[]){
String a;
for (int i=1000;i<10000;i++){
a=String.valueOf(i); #字符串转数字 Integer.valueOf("12")
#数字转字符串 String.valueOf(12)
StringBuilder b=new StringBuilder(a); #这里要把String转变为StringBuilder,不然不能用下一句的reverse
b.reverse();
String c=new String(b); #这里就是再把StringBuilder转换成String
if (a.equals(c)){ #字符串的对等对比要用equals,==是用来判断数字的
System.out.println(i); #相同的字符串,如果用==,结果也是FALSE
}
}
}
}
第二个编程,学到好多新知识,新技能。
1.字符串与数字的转变 2.String是不能变换的 3.字符串对比要用equals,==只能用来对比数字