2011-08-09 25 views
6

什麼是好的算法來計算在許多ňķ進製表示的個數字的值?如何計算數字的k進製表示中的第i位數值?

實施例:

對於功能bitval(int k, int i, int n)

bitval(5, 4, 9730) = 2因爲在數目9730(它是302410)的第4位(從右側)的5元(五元)表示爲2。

+0

什麼是問題標題中的「t」? –

+0

@Oli:對不起,剛剛點擊'提交'太早... – Frank

+0

@Kerrek:我看不到你的觀點。 'n'是一個數字,例如9730,不是字符串表示。你有一點,但如果你真的認爲該函數應該返回一個字符串,例如如果k = 16(十六進制表示),則爲「f」。 – Frank

回答

5

喜歡的東西:

(n/(k ** i)) % k 

(其中**是冪運算符和/是整數(截斷)除法)應該這樣做。如果你想數量從右邊的數字從1開始,而不是0

-2

開始天真的算法如下使用(i-1)

  1. 計算nk進製表示。這可以通過重複劃分和模操作來實現。
  2. 在此表示形式中返回i的第位數。
相關問題