您的位置:首页 > 其它

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

2016-02-11 17:08 260 查看
问题描述

  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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  蓝桥杯