特殊迴文數字:求出5位數和6位數中各位上的數字之和為n的迴文數。
阿新 • • 發佈:2019-02-17
問題描述
123321是一個非常特殊的數,它從左邊讀和從右邊讀是一樣的。
輸入一個正整數n, 程式設計求所有這樣的五位和六位十進位制數,滿足各位數字之和等於n 。
輸入格式
輸入一行,包含一個正整數n。
輸出格式
按從小到大的順序輸出滿足條件的整數,每個整數佔一行。
樣例輸入
52
樣例輸出
899998
989989
998899
資料規模和約定
1<=n<=54。
本體的解題思路可以使先找出迴文數,再判斷各位上的數字之和是否滿足n
int a=num/10000;//萬位 int b=num/1000%10;//千位 int c=num/100%10;//百位 int d=num/10%10;//十位 int e=num%10;個位原始碼:
#include<stdio.h> int a(int n)//求出5位數和6位數中的迴文數函式 { int i,j,sum,temp,len; int a,b,c; for(i=10000;i<1000000;++i) { sum=0; temp=i; len=0; while(temp!=0) { sum=sum*10+temp%10; temp=temp/10; len++;//累計位數以此判斷是5位數還是6位數 } if(sum==i)//先把迴文數求出來,下面再來比較各位數字之和是否等於n { a=i%10;//個位 b=i/10%10;//十位 c=i/100%10;//百位 if(5==len) { if(n==(2*a+2*b+c)) { printf("%d\n",i); } } if(6==len) { if(n==(2*a+2*b+2*c)) { printf("%d\n",i); } } } } } //主函式 int main() { int n; scanf("%d",&n); a(n); return 0; }