Data7.20特殊回文数2

问题描述

123321 是一个非常特殊的数,它从左边读和从右边读是一样的。
输入一个正整数 n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n。

输入格式

输入一行,包含一个正整数n;

输出格式

按从小到大的顺序输出满足条件的整数,每个整数占一行。

样例输入

52

样例输出

899998
989989
998899

数据规模和约定

1 <= n <= 54

思路

  • 五位数最小的值为10000,所以可以在这个值开始循环、遍历,并判断该值是否是各个数相加之和等会输入的n值;
  • 六位数跟五位数的思路一样,就增多判断、遍历最高位的代码;

代码

package data;
import java.util.Scanner;
public class Data720 {
    public static void main(String[] args){
    Scanner cin = new Scanner(System.in);
    int n = cin.nextInt();
    if(n >= 1 && n <= 54)
    {
       //五位数的情况
        for (int x = 10000; x<100000; x++)
        {
            int a = x/10000;
            int b = (x/1000)%10;
            int c = (x/100)%10;
            int d = (x/10)%10;
            int e = x%10;
            if(a == e && b == d)
            {
                int m = a + b + c +d +e;
                if(n ==m)
                {
                    System.out.println(x);
                }
            }
        }
        //六位数的情况
        for(int x = 100000; x<1000000; x++)
        {//x = 899998
            int a = x/100000;  //8
            int b = (x/10000)%10; //89%10 = 9
            int c = (x/1000)%10; //899%10 = 99
            int d = (x/100)%10;//8999 % 10 = 998;
            int e = (x/10)%10;
            int f = x%10;
            if(a == f && b == e && c == d)
            {
                int m = a + b + c +d +e +f;
                if(n ==m)
                {
                    System.out.println(x);
                }
            }
        }

    }
    }
}

Data7.20特殊回文数2

上一篇:CT03 Contest#10 equation 大力打表+讨论


下一篇:【LeetCode】61. 旋转链表