基础练习 特殊回文数

来源:互联网 发布:linux添加用户到用户组 编辑:程序博客网 时间:2024/06/06 11:54
问题描述
  123321是一个非常特殊的数,它从左边读和从右边读是一样的。
  输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入格式
  输入一行,包含一个正整数n。
输出格式
  按从小到大的顺序输出满足条件的整数,每个整数占一行。
样例输入
52
样例输出
899998
989989
998899
数据规模和约定
  1<=n<=54。



import java.util.Scanner;/* * 123321是一个非常特殊的数,它从左边读和从右边读是一样的。 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。 */public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int n = scan.nextInt();for (int i = 10000; i < 1000000; i++) {if (i < 100000) {// 五位数int a1 = i / 10000;int a2 = i / 1000 % 10;int a3 = i / 100 % 10;int a4 = i / 10 % 10;int a5 = i % 10;if (a1 + a2 + a3 + a4 + a5 == n) {if (panduan(i)) {System.out.println(i);}}} else {// 六位数int a1 = i / 100000;int a2 = i / 10000 % 10;int a3 = i / 1000 % 10;int a4 = i / 100 % 10;int a5 = i / 10 % 10;int a6 = i % 10;if (a1 + a2 + a3 + a4 + a5 + a6 == n) {if (panduan(i)) {System.out.println(i);}}}}}private static boolean panduan(int i) {String str = String.valueOf(i);StringBuilder s1 = new StringBuilder(str);String s2 = s1.reverse().toString();if (s2.equals(str)) {return true;} else {return false;}}}




原创粉丝点击