首页 > 其他 > 详细

Data7.20特殊回文数2

时间:2021-07-21 09:24:43      阅读:25      评论:0      收藏:0      [点我收藏+]

问题描述

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

原文:https://www.cnblogs.com/tmtboke/p/15037446.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!