蓝桥杯-基础练习-特殊回文数

问题描述
  123321是一个非常特殊的数,它从左边读和从右边读是一样的。
  输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入格式
  输入一行,包含一个正整数n。
输出格式
  按从小到大的顺序输出满足条件的整数,每个整数占一行。
样例输入
52
样例输出
899998
989989
998899
数据规模和约定
  1<=n<=54。

import java.util.Scanner;

public class Main {
	static Boolean a(int n) {
		int x = 0, r, o;
		o = n;
		while (n > 0) {
			r = n % 10;
			x = x * 10 + r;
			n = n / 10;
		}
		if (o == x)
			return true;
		else
			return false;
	}//判断是否为回文数

	public static int b(int num1) {
		int a, b, c, sum;
		if (num1 > 99999) {
			a = num1 / 100000;
			b = num1 / 10000 % (a * 10);
			c = num1 / 1000 % (a * 100 + b * 10);
			sum = 2 * (a + b + c);
		} else {
			a = num1 / 10000;
			b = num1 / 1000 % (a * 10);
			c = num1 / 100 % (a * 100 + b * 10);
			sum = a + b + c + b + a;
		}
		return sum;
	}//把每一位相加得到和

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		int num, in;
		in = input.nextInt();
		for (num = 10000; num <= 999999; num++) {
			if (a(num) && b(num) == in) {
				System.out.println(num);
			}
		}
	}
}

测试输出:

输入:
26
输出:
18881
19691
27872
28682
29492
36863
37673
38483
39293
45854
46664
47474
48284
49094
54845
55655
56465
57275
58085
63836
64646
65456
66266
67076
72827
73637
74447
75257
76067
81818
82628
83438
84248
85058
90809
91619
92429
93239
94049
139931
148841
157751
166661
175571
184481
193391
229922
238832
247742
256652
265562
274472
283382
292292
319913
328823
337733
346643
355553
364463
373373
382283
391193
409904
418814
427724
436634
445544
454454
463364
472274
481184
490094
508805
517715
526625
535535
544445
553355
562265
571175
580085
607706
616616
625526
634436
643346
652256
661166
670076
706607
715517
724427
733337
742247
751157
760067
805508
814418
823328
832238
841148
850058
904409
913319
922229
931139
940049
输入:
54
输出:
999999


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值