藍橋杯題解-特殊迴文數-BASIC-9
阿新 • • 發佈:2019-01-14
題目地址:特殊迴文數
問題描述
123321是一個非常特殊的數,它從左邊讀和從右邊讀是一樣的。
輸入一個正整數n, 程式設計求所有這樣的五位和六位十進位制數,滿足各位數字之和等於n 。
輸入格式
輸入一行,包含一個正整數n。
輸出格式
按從小到大的順序輸出滿足條件的整數,每個整數佔一行。
樣例輸入
52
樣例輸出
899998
989989
998899
資料規模和約定
1<=n<=54
解:
在一個for迴圈內進行的話,把五六位數分開判斷程式碼清晰明瞭,但程式碼累贅。
程式碼:
#include"iostream"
#include"cmath"
using namespace std;
int main()
{
int a1,a2,a3,a4,a5,a6,n;//分別五位數只用前四個
cin>>n;
for(int a=10000;a<1000000;a++)
{
if(a<100000)//針對五位
{
a4=a/10000;//萬
a3=a/1000-a4*10;//千
a5=a/100-a3*10-a4*100;//百
a2=a/10-a5*10-a3*100-a4*1000;//十
a1=a-a2*10-a5*100-a3*1000-a4*10000;//個
if(a1== a4&&a2==a3&&a1+a2+a3+a4+a5==n)cout<<a<<endl;
}
else//六位
{
a6=a/100000;//十萬
a5=a/10000-a6*10;//萬
a4=a/1000-a5*10-a6*100;//千
a3=a/100-a4*10-a5*100-a6*1000;//百
a2=a/10-a3*10-a4*100-a5*1000-a6*10000;//十
a1=a-a2*10-a3*100-a4*1000-a5*10000-a6*100000;//個
if(a1==a6&&a2==a5&&a3==a4&&a1+a2+ a3+a4+a5+a6==n)cout<<a<<endl;
}
}
return 0;
}