兩個關於進製轉換的經典面試題

2021-08-09 01:47:27 字數 1520 閱讀 1954

一、【30!的結果,轉換成3進製有幾個0】

拿常見的10進製來分析

例如5!中有幾個0  

10中有幾個0

5!=120 乙個0

10!=3628800 2個0

在10進製中,出現0的情況無非是出現2個數相乘剛好為10,進製出現了0,5!中只有2和5能湊出10來,因此乙個0;

10!中有2*5 10湊出兩個10來,因此2個0,和上面簡單的舉例結果一致!

因此如果是求30!的十進位制結果中有幾個0的問題就轉化成了求30!這串長連乘數字中能湊出幾個10的問題;

1.2和5      1個

2.10        1個

3.15中的3*5 和乙個偶數     1個

4.20        1個

5.25中的5*5 和兩個偶數     2個

6.30         1個

因此30!的結果一共有

7個0但題目中要求轉換成3進製,3進製逢3進製。會出現0,因此只要求30!中有幾個3就好了。

1.3          1個

2.6=2*3      1個

3.9=3*3      2個

4.12=3*4     1個

5.15=3*5     1個

6.18=3*3*2   2個

7.21=3*7     1個

8.24=3*8     1個

9.27=3*3*3   3個

10.30=3*10   1個

因此30!的結果,轉換成3進製一共有

14個0

二、【567*456=150216在n進製下成立,問n為多少】

個位數相乘6*7=42   在10進製的情況下,末尾應該為2,但在幾進製下變成了150216中的6呢。

那應該是2作為了前一位的個數,然後n進製化了;

兩個個位相乘的結果6*7=42   在對n進製取餘後為6

列下了這個式子 

42%n=6

42-6=36

因此36中6以上的的因數都可能為n

n=9,12,18,36

因此範圍就縮小了

(5n^2+6n+7)*(4n^2+5n+6)=20n^4+49n^3+88n^2+71n+421

n^5+5n^4+2n^2+n+6 ..2

最後將進製數挨個帶入,如果1式和2式相等,那麼即為結果

最終結果為

18

兩個面試題

1.實現乙個lite版的字串替換函式 c c char strreplace char str,const char sub,const char rep 限制條件和要求如下 1.其中str為原字串,sub為待被替換的子串。為簡單起見,假定字串sub和rep長度一樣 2.直接對原字串str進行修改並...

關於Map集合的兩個面試題

hashtable對於有些人可能會有點面生。hashtable是jdk 1.0就已經出現的,細心的人可能會發現hashtable這是乙個不規範的命名方式,理論上來說應該寫成hashtable的。但是首先宣告一點hashtable就是正確的寫法,這是為數不多的不規範命名的類,原因是因為出現的比較早,命...

兩個簡單的面試題

分享兩個簡單的面試題,好吧,求質數的那個面試題居然沒做出來。要好好打基礎 public class study0812 獲取arr陣列中最大的數的索引,該索引加97就是字元中重複最多的字元 int maxindex 0 for int i 0 i arr.length 1 i return char...