蓝桥杯练手之回文数字

观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做:回文数字。

    本题要求你找到一些5位或6位的十进制数字。满足如下要求:

    该数字的各个数位之和等于输入的整数。

【输入格式】

一个正整数 n(10<n<100), 表示要求满足的数位和。

【输出格式】

若干行,每行包含一个满足要求的5位或6位整数。

数字按从小到大的顺序排列。

#include<stdio.h>
int main()
{
	int flag,k,i,m,j;
	flag=1;
	printf("输入一个两位数\n");
	scanf("%d",&k);
	if(10<k&&k<99&&flag==1)
	{
		for(i=10000;i<=99999;i++)
		{//判断五位数
			    int a[5],s2;
				m=i;s2=0;
			    for(j=0;j<5;j++)
			        {
			        	a[j]=m%10;
						m=m/10;
			     	}
				for(j=0;j<5;j++)
					{
						s2=s2+a[j];
					}
		    	if(k==s2)
				{
						int w=0;
						for(j=0;j<2;j++)
						{	
							if(a[j]==a[4-j])
							{ 
								w++;
							}	 
						}				
					if(w==2)
						{
								printf("%d\n",i);
						}
	    	}
			
		}

		for(i=100000;i<=999999;i++)
		{//判断六位数
			    int a[6],s;
				m=i;s=0;
			    for(j=0;j<=5;j++)
			        {
			        	a[j]=m%10;
						m=m/10;
			     	}
				for(j=0;j<=5;j++)
					{
						s=s+a[j];
					}
		    	if(k==s)
				{
						int w=0;
						for(j=0;j<3;j++)
						{	
							if(a[j]==a[5-j])
							{ 
								w++;
							}	 
						}				
					if(w==3)
						{
								printf("%d\n",i);
								flag=0;		
						}
	    	}
			
		}
	}
	else
		printf("输入的不合法"); 
return 0;

}


posted @ 2015-11-08 13:12  Joe.Smith  阅读(178)  评论(0编辑  收藏  举报