我真的好菜啊

0 基础练习 特殊回文数

问题描述:

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

输入格式:

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

输出格式:

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

样例输入:

52

样例输出:

899998 989989 998899

数据规模和约定:

1<=n<=54。

1 做题思路 & 注意事项

所有符合条件的的五位和六位十进制数,每个位数的数字求出,然后判断是否符合条件,如果是就输出。

五位的需要满足万位等于个位、千位等于十位、每个数加起来等于输入的值;六位类似。

2 参考代码(Java)

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        sc.close();

        for(int i=10000;i<=99999;i++) {
	        int a = i % 100000/10000;  //万位
	        int b = i % 10000/1000;  //千位
	        int c = i % 1000/100;  //百位
	        int d = i % 100/10;  //十位
	        int e = i % 10;  //个位
	        if(a==e&&b==d&&(a+b+c+d+e==n))  //符合条件就输出
	        	System.out.println(i);
	    }

        for(int i=100000;i<=999999;i++) {
	        int a = i % 1000000/100000;  //十万位
	        int b = i % 100000/10000;  //万位
	        int c = i % 10000/1000;  //千位
	        int d = i % 1000/100;  //百位
	        int e = i % 100/10;  //十位
	        int f = i % 10;  //个位
	        if(a==f&&b==e&&c==d&&(a+b+c+d+e+f==n))  //符合条件就输出
	        	System.out.println(i);
	    }
    }
}

相关文章:基础练习 回文数