Problem G: 特殊回文数
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 73 Solved: 39
[ Submit][ Status][ Web Board]
Description
123321是一个非常特殊的数,它从左边读和从右边读是一样的。
输入一个正整数n(1<=n<=54), 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
Input
输入一行,包含一个正整数n。
Output
按从小到大的顺序输出满足条件的整数,每个整数占一行。
Sample Input
4
Sample Output
10201 11011 20002 101101 110011 200002
HINT
#include<iostream>
using namespace std;
int main()
{
int n,i,l,m;
cin>>n;
for(i=1;i<=9;i++)//五位数时的个位与万位
for(l=0;l<=9;l++)//十位与千位
for(m=0;m<=9;m++)//百位
{
if(n==i+i+l+l+m)
cout<<i<<l<<m<<l<<i<<endl;}
if(n%2==0)//在六位数中的特殊回文数各位之和只可能是偶数
{
for(i=1;i<=9;i++)//六位数时的个位与十万位
for(l=0;l<=9;l++)//十位与万位
for(m=0;m<=9;m++)//百位与千位
{if(n==i+i+l+l+m+m)
cout<<i<<l<<m<<m<<l<<i<<endl;}
}
return 0;
}