1. 程式人生 > >藍橋杯題解-特殊迴文數-BASIC-9

藍橋杯題解-特殊迴文數-BASIC-9

題目地址:特殊迴文數

問題描述

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; }

題解目錄