特殊回文数
时间: 1ms 内存:128M
描述:
123321是一个非常特殊的数,它从左边读和从右边读是一样的。
输入一个正整数n(1<=n<=54), 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入:
输入一行,包含一个正整数n。
输出:
按从小到大的顺序输出满足条件的整数,每个整数占一行。
示例输入:
4
示例输出:
10201
11011
20002
101101
110011
200002
提示:
参考答案(内存最优[1092]):
#include<stdio.h>
int main()
{
int i,j,k;
int n,m;
scanf("%d",&n);
for(i=1;i<=9;i++)
for(j=0;j<=9;j++)
for(k=0;k<=9;k++)
if(n==(i+j+k+j+i))
{
printf("%d%d%d%d%d\n",i,j,k,j,i);
}
if(n%2==0)
{
for(i=1;i<=9;i++)
for(j=0;j<=9;j++)
for(k=0;k<=9;k++)
if(n==(i+j+k+i+j+k))
{
printf("%d%d%d%d%d%d\n",i,j,k,k,j,i);
}
}
return 0;
}
参考答案(时间最优[0]):
#include <iostream>
using namespace std;
int main()
{
int x,y,z,n;
cin>>n;
for(x=1;x<10;x++)
{
for(y=0;y<10;y++)
{
for(z=0;z<10;z++)
{
if(2*x+2*y+z==n) cout<<x<<y<<z<<y<<x<<endl;
}
}
}
for(x=1;x<10;x++)
{
for(y=0;y<10;y++)
{
for(z=0;z<10;z++)
{
if(2*x+2*y+2*z==n) cout<<x<<y<<z<<z<<y<<x<<endl;
}
}
}
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。
