3485 - 回文回文
123321是一个非常特殊的数,它从左边读和从右边读是一样的。输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。1<=n<=54。
Input
输入一行,包含一个正整数n。
Output
按从小到大的顺序输出满足条件的整数,每个整数占一行。
Examples
Input
52
Output
899998 989989 998899
Solution C
int main(int argc, char* argv[]) { int a,b,c,n; while(~scanf("%d",&n)) { for(a=1;a<=9;a++) //五位 for(b=0;b<=9;b++) { c=n-2*(a+b); if(c>=0&&c<=9) printf("%d%d%d%d%d\n",a,b,c,b,a); } for(a=1;a<=9;a++) //六位 for(b=0;b<=9;b++) { c=(n-2*(a+b))/2; if(c>=0&&c<=9) { if(2*(a+b+c)==n) printf("%d%d%d%d%d%d\n",a,b,c,c,b,a); } } } return 0; }
Solution C++
#include<stdio.h> int main() { int m,n,i,j,k; int sum; while(scanf("%d",&m)!=EOF) { for(i=1;i<=9;i++) for(j=1;j<=9;j++) for(k=1;k<=9;k++) { sum=(i+j+k)*2; if(sum==m) printf("%d%d%d%d%d%d\n",i,j,k,k,j,i); } } return 0; }