如何计算数字的 k 进制表示中第 i 位的值?
什么是计算数字 n 的 k 元表示中第 i 位数字的值的好算法?
示例:
对于函数 bitval(int k, int i, int n)
:
bitval(5, 4, 9730) = 2
因为采用 5 进制(五进制)表示形式数字 9730(即 302410)的第 4 位数字(从右数)是 2。
What is a good algorithm to compute the value of the i-th digit in a k-ary representation of a number n?
Example:
For function bitval(int k, int i, int n)
:
bitval(5, 4, 9730) = 2
because in a 5-ary (quinary) representation of the number 9730 (which is 302410) the 4th digit (from the right) is 2.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
像这样的东西:(
其中
**
是指数运算符,/
是整数(截断)除法)应该这样做。如果您想从右侧开始对数字进行编号而不是从 0 开始,请使用(i-1)
。Something like:
(where
**
is the exponentiation operator and/
is integer (truncating) division) should do it. Use(i-1)
if you want to number the digits from the right starting with 1 rather than starting with 0.朴素算法如下:
n
的k
元表示。这可以通过重复除法和模运算来实现。The naive algorithm is as follows:
k
-ary representation ofn
. This can be achieved with repeated divides and modulo operations.i
-th digit in this representation.