如何在数字的k-ary表示中计算第i个数字的值?

时间:2011-08-09 20:29:38

标签: algorithm math numbers

计算 k - n i 次数字的值的好算法是什么? n

示例:

对于函数bitval(int k, int i, int n)

bitval(5, 4, 9730) = 2因为在数字9730(即302410)的5-ary(quinary)表示中,第4位(从右边)是2。

2 个答案:

答案 0 :(得分:5)

类似的东西:

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

(其中**是指数运算符,/是整数(截断)除法)应该这样做。如果要对从右边开始的数字开始,而不是从0开始,请使用(i-1)

答案 1 :(得分:-2)

朴素算法如下:

  1. 计算k的{​​{1}} - ary表示。n。这可以通过重复划分和模运算来实现。
  2. 返回此表示中的i位数。