历届试题 PREV-21 回文数字

来源:互联网 发布:推荐一本c语言入门的书 编辑:程序博客网 时间:2024/06/04 00:57
问题描述
  观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做:回文数字。

  本题要求你找到一些5位或6位的十进制数字。满足如下要求:
  该数字的各个数位之和等于输入的整数。
输入格式
  一个正整数 n (10<n<100), 表示要求满足的数位和。
输出格式
  若干行,每行包含一个满足要求的5位或6位整数。
  数字按从小到大的顺序排列。
  如果没有满足条件的,输出:-1
样例输入
44
样例输出
99899
499994
589985
598895
679976
688886
697796
769967
778877
787787
796697
859958
868868
877778
886688
895598
949949
958859
967769
976679
985589
994499
样例输入
60
样例输出
     -1

import java.util.Scanner;public class Main{public static void main(String[] args) {Scanner input = new Scanner(System.in);int n = input.nextInt();int i=10000;int index = 0;for (; i<1000000; i++){if (sum(i,n) && f(i)){System.out.println(i);index++;}}if (index==0){System.out.println(-1);}}public static boolean sum(int i,int n){int result = 0;while(i!=0){int temp = i%10;result += temp;i = i/10;}if (result == n){return true;}else{return false;}}public static boolean f(int i){String str = i+"";for (int index=0; index<str.length()/2; index++){if (str.charAt(index)!=str.charAt(str.length()-1-index)){return false;}}return true;}}