1. 程式人生 > >藍橋杯練手之迴文數字

藍橋杯練手之迴文數字

觀察數字: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;

}