回文数JAVA(蓝桥杯训练)
问题描述
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,==只能用来对比数字
