问题描述
123321是一个非常特殊的数,它从左边读和从右边读是一样的。
输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入格式
输入一行,包含一个正整数n。
输出格式
按从小到大的顺序输出满足条件的整数,每个整数占一行。
样例输入
52
样例输出
899998
989989
998899
数据规模和约定
1<=n<=54。
本题我分情况求解。具体代码如下:
#include<stdio.h>
int main(){
int n, i, sum, a, b, c, d, e, f;
scanf("%d", &n);
for(i=10000;i<=99999;i++){//先找五位数的
a=i/10000;//第一位数字
b=i/1000%10;//第二位数字
c=i/100%10;//第三位数字
d=i/10%10;//第四位数字
e=i%10;//第五位数字
if(a+b+c+d+e==n&&a==e&&b==d){//满足是回文数且各个数字之和等于n
printf("%d\n", i);
}
}
for(i=100000;i<999999;i++){//再找六位数的
a=i/100000;//第一位数字
b=i/10000%10;//第二位数字
c=i/1000%10;//第三位数字
d=i/100%10;//第四位数字
e=i/10%10;//第五位数字
f=i%10;//第六位数字
if(a+b+c+d+e+f==n&&a==f&&b==e&&c==d){//满足是回文数且各个数字之和等于n
printf("%d\n", i);
}
}
return 0;
}