題目描述
觀察數字:12321,123321 都有乙個共同的特徵,無論從左到右讀還是從右向左讀,都是相同的。這樣的數字叫做:回文數字。
本題要求你找到一些5位或6位的十進位制數字。滿足如下要求:
該數字的各個數字之和等於輸入的整數。
輸入
乙個正整數 n (10< n< 100), 表示要求滿足的數字和。
輸出
若干行,每行包含乙個滿足要求的5位或6位整數。
數字按從小到大的順序排列。
如果沒有滿足條件的,輸出:-1
樣例輸入
44
樣例輸出
99899
499994
589985
598895
679976
688886
697796
769967
778877
787787
796697
859958
868868
877778
886688
895598
949949
958859
967769
976679
985589
994499
題目分析
解法一:
暴力破解法
既然題目中說了是五位和六位的數字,那麼我們可以直接遍歷從10000到999999的所有數字,從中進行篩選
題目**
#include
using
namespace
std;
int n;
bool flag = false;
bool huiwen(long a)
return a == b;
}bool xiangjia(long a)
if(sum == n)
return
false;
}int main()}}
if(!flag)
cout
<< "-1"
<< endl;
return
0;}
解法二:
暴力破解法雖然簡單但是遍歷10000到999999之間的所有數浪費了很多時間,所以為了降低執行時間,我們將每一位單獨討論首尾相等我們用乙個變數儲存,這樣下來,我們只需遍歷9^3次。
題目**
#includeusing namespace std;
bool flag = false
;void solve(int x,int y,int z,int n)
; for(a[0] = 1
;a[0]<=9;a[0]++)
for(a[1] = 0
;a[1]<=9;a[1]++)
for(a[2] = 0
;a[2]<=9;a[2]++)
if(z == 1)
}else
}}int main()
藍橋杯試題 歷屆試題 郵局
題中的資料量很小,但單純的回溯會超時,所以需要剪枝,這裡減了三個枝。1.當即使所有剩餘點都算上都不能取k個點時。2.當當前點大於k個時。3.當發現加入乙個點後距離陣列沒有變化時,說明這個點可有可無以後不再計算。include include include include using namespa...
藍橋杯歷屆試題 錯誤票據 水題
問題描述 某涉密單位下發了某種票據,並要在年終全部收回。每張票據有唯一的id號。全年所有票據的id號是連續的,但id的開始數碼是隨機選定的。因為工作人員疏忽,在錄入id號的時候發生了一處錯誤,造成了某個id斷號,另外乙個id重號。你的任務是通過程式設計,找出斷號的id和重號的id。假設斷號不可能發生...
藍橋杯刷題
題目 問題描述 給定圓的半徑r,求圓的面積。輸入格式 輸入包含乙個整數r,表示圓的半徑。輸出格式 輸出一行,包含乙個實數,四捨五入保留小數點後7位,表示圓的面積。說明 在本題中,輸入是乙個整數,但是輸出是乙個實數。對於實數輸出的問題,請一定看清楚實數輸出的要求,比如本題中要求保留小數點後7位,則你的...