特殊迴文數(很坑

萬里無雲便是我發表於2017-03-26

問題描述

/*
基礎練習 特殊迴文數 
時間限制:1.0s   記憶體限制:512.0MB
關鍵字:迴文數 迴圈 條件語句
問題描述
  123321是一個非常特殊的數,它從左邊讀和從右邊讀是一樣的。
  輸入一個正整數n, 程式設計求所有這樣的五位和六位十進位制數,滿足各位數字之和等於n 。
輸入格式
  輸入一行,包含一個正整數n。
輸出格式
  按從小到大的順序輸出滿足條件的整數,每個整數佔一行。
樣例輸入
52
樣例輸出
899998
989989
998899
資料規模和約定
  1<=n<=54。
*/


程式碼:

//錯誤 (把I拿出來宣告提交就沒錯了)
/* 
#include<stdio.h>
int main()
{
	int a,b,c,d,e,f;
	int n;
	scanf("%d",&n);
	for(int i=10001;i<=999999;i++){
		if(i<100000){
		a=i/10000;
		b=i%10000/1000;
		c=i%10000%1000/100;
		d=i%10000%1000%100/10;
		e=i%10; 
		if(a==e&&b==d&&a+b+c+d+e==n)
		printf("%d\n",i);
	    }
       
		else if(i>=100000){
		a=i/100000;
		b=i%100000/10000;
		c=i%100000%10000/1000;
		d=i%100000%10000%1000/100;
		e=i%100000%10000%1000%100/10;
		f=i%10; 
		if(a==f&&b==e&&c==d&&a+b+c+d+e+f==n)
		printf("%d\n",i);
     	}	
	}
	return 0;
}
*/
/*
//錯(b應該從0開始)
#include<stdio.h>
int main()
{
	int a,b,c;
	int n;
	scanf("%d",&n);
	for(a=1;a<10;a++){
		for(b=1;b<10;b++){
			for(c=1;c<10;c++){

				if(a+b+c+a+b==n)
				printf("%d%d%d%d%d\n",a,b,c,b,a);
			}
		}
	}
		for(a=1;a<10;a++){
		for(b=1;b<10;b++){
			for(c=1;c<10;c++){
				if(a+b+c+a+b+c==n)
				printf("%d%d%d%d%d%d\n",a,b,c,c,b,a);
			}
		}
	}
	return 0;
}

*/ 
正確

#include<stdio.h>
int main()
{
	int a,b,c,d,e,f,t,all;
	scanf("%d",&t);
	for(a=1;a<10;a++)
		for(b=0;b<10;b++)
			for(c=0;c<10;c++)
				for(d=0;d<10;d++)
					for(e=0;e<10;e++)
					{
						if(a==e)
							if(b==d)
								{
									all=a+b+c+d+e;
									if(all==t)
									printf("%d\n",a*10000+b*1000+c*100+d*10+e);
								}
					}
	for(a=1;a<10;a++)
		for(b=0;b<10;b++)
			for(c=0;c<10;c++)
				for(d=0;d<10;d++)
					for(e=0;e<10;e++)
						for(f=0;f<10;f++)
						{
							if(a==f)
								if(b==e)
									if(c==d)
									{
										all=a+b+c+d+e+f;
										if(all==t)
											printf("%d\n",a*100000+b*10000+c*1000+d*100+e*10+f);
									}
						}
					
	return 0;
}





相關文章