解题思路:
回文数有着对称的特点,而且题目要求只判断5位和6位的十进制数字,所以只看待求数的前三位即可(时间复杂度为常数阶),Java对字符串的处理非常拿手,求解十分方便。
具体求解思路请见代码注释
注意事项:
千万别忘了没有找到要输出-1;
参考代码:
import java.util.*; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); int n; n = sc.nextInt(); List l = new ArrayList();//存放所有的符合条件的回文数 for(int i = 1; i<=9;++i) {//第一位数(从左到右) 不为0 要从1-9 里选 for (int j = 0; j<= 9;++j) {//第二位数(从左到右) 从0-9 里选 for (int k = 0;k <= 9;++k) {//第三位数(从左到右) 从0-9 里选 if ((i+j)*2+k == n) {//判断该五位回文数 是否符合条件 String s = i+""+j+""+k+""+j+""+i; //先用字符串表示出来 l.add(Integer.parseInt(s));//转化为整形后添加进List } if((i+j+k)*2 == n) {//判断该六位回文数 是否符合条件 String s = i+""+j+""+k+""+k+""+j+""+i; l.add(Integer.parseInt(s)); } } } } if(l.size() == 0) {//判断有没有找到 没有输出-1 System.out.println(-1); return ; } Collections.sort(l);//给所有符合条件的数从小到大排序 for (int i = 0; i < l.size();++i)System.out.println(l.get(i));//输出 } }
0.0分
3 人评分
点我有惊喜!你懂得!浏览:972 |
陶陶摘苹果 (C语言代码)浏览:1606 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:452 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:543 |
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:1245 |
WU-链表数据求和操作 (C++代码)浏览:1316 |
简单的a+b (C语言代码)浏览:528 |
字符逆序 (C语言代码)浏览:643 |
1050题解(结构体数组与结构体指针的使用)浏览:1108 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:401 |