東方博宜 1386 - 小麗找半個回文數
題目描述
小麗同學在編程中學到了回文數的概念,如果一個數正過來讀和反過來讀是同一個數,那么這個數就是回文數;比如:22、55、88、6666、121121、686686、1232112321 都是回文數,小麗發(fā)現,這樣的數不算多。
于是小麗有個想法,如果這個數不是回文數,但這個數在 22 進制或者 1616 進制下是回文數,就算這個整數是半個回文數,比如 417417 并不是回文,但 417 對應的 16 進制數是 1A1 是回文數,因此 417 算半個回文數。
請你編程幫助小麗找符合條件的半個回文數。
輸入
第一行是一個整數 n(5≤n≤100); 第二行是 n 個整數(這些整數都是[0,108] 之間的整數);
輸出
所有符合條件的半個回文數,每行一個。
樣例
輸入
5
121 417 27 100 21
輸出
417
27
21

思路:
1、函數部分:
定義函數,先將n轉換成d進制。


d
進制的數是否是回文的,如果不是,直接return 0
或return false
,是,return 1
或return true
。

函數部分完整代碼:

2、主函數部分:
1、讀入,這句話是不是多余的

2、邊讀入每一個數x
邊判斷,
條件1:x
在10進制下不是回文數(滿足半個回文數的條件)。

條件2:
分兩種情況:
情況1:x
在2進制中是回文數。
情況2:x
在16進制中是回文數。
這兩種情況滿足一種即可。

3、滿足條件,輸出x
。

主函數部分完整代碼:


完整代碼:

標簽: