算法簡(jiǎn)介
這是一種入門(mén)級(jí)的算法,它是利用計(jì)算機(jī)運(yùn)算速度快、精確度高的特點(diǎn),對(duì)要解決問(wèn)題的所有可能情況,一個(gè)不漏地進(jìn)行檢驗(yàn),從中找出符合要求的答案,因此枚舉法是通過(guò)犧牲時(shí)間來(lái)?yè)Q取答案的全面性。
題目鏈接
題意
給出一個(gè)(0, 50000)內(nèi)的整數(shù),求該數(shù)在[2,16]進(jìn)制下分別是否為回文數(shù)
解法
枚舉[2,16]進(jìn)制,每次都把數(shù)字轉(zhuǎn)化成該進(jìn)制下的字符串,然后判斷是否為回文數(shù),最后按格式輸出結(jié)果
核心代碼
int n = in.nextInt();
List<Integer> fixedBaseList = new ArrayList<>();
for (int radix = 2; radix <= 16; ++radix) {
String str = Integer.toString(n, radix);
String revStr = new StringBuilder(str).reverse().toString();
if (str.equals(revStr)) {
fixedBaseList.add(radix);
}
}