Как вычислить значение i-й цифры в k-арном представлении числа? - PullRequest
6 голосов
/ 10 августа 2011

Какой хороший алгоритм для вычисления значения i -ой цифры в k -начном представлении числа n ?

Пример:

Для функции bitval(int k, int i, int n):

bitval(5, 4, 9730) = 2 потому что в 5-ти (двоичном) представлении числа 9730 (то есть 302410) 4-я цифра (справа) равна 2.

Ответы [ 2 ]

5 голосов
/ 10 августа 2011

Что-то вроде:

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

(где ** - оператор возведения в степень, а / - целочисленное (усеченное) деление).Используйте (i-1), если вы хотите пронумеровать цифры справа, начиная с 1, а не с 0.

0 голосов
/ 10 августа 2011

Наивный алгоритм выглядит следующим образом:

  1. Рассчитать k -ное представление n. Это может быть достигнуто с помощью повторных делений и операций по модулю.
  2. Возвращает i -й разряд в этом представлении.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...