3485 - 回文回文

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

123321是一个非常特殊的数,它从左边读和从右边读是一样的。输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。1<=n<=54。

题目输入

输入一行,包含一个正整数n

题目输出

按从小到大的顺序输出满足条件的整数,每个整数占一行。

输入/输出样例

输入格式

52

输出格式

899998
989989
998899

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;
}

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;
}

Java解答

import java.util.Scanner;


public class Main {
	static Scanner sc = new Scanner(System.in);
	public static void main(String[] args){
		int n = sc.nextInt();
		for (int i = 1; i < 10; i++) {
			for (int j = 0; j < 10; j++) {
				for (int k = 0; k < 10; k++) {
					if(i*2+j*2+k==n)
						System.out.println(i*10000+j*1000+k*100+j*10+i);
					else if(i*2+j*2+k*2==n)
						System.out.println(i*100000+j*10000+k*1000+k*100+j*10+i);
				}
			}
		}
	}
}