Я хочу вычислить 10 приподнятых на мощность минус m
. В дополнение к использованию математической функции pow(10, -m)
, есть ли быстрый и эффективный способ сделать это?Быстрый способ вычисления n раз 10 при увеличении мощности минус m
То, о чем я прошу такой простой вопрос для гуру C++ из SO, состоит в том, что, как вы знаете, так же, как и база 2, 10, также является специальной базой. Если какое-либо значение n
раз превышает мощность 10 секунд минус m
, это эквивалентно перемещению десятичной точки n влево в m раз. Я думаю, что это должен быть быстрый и эффективный способ справиться.
Является ли m целым числом? Всегда ли это положительно? Каково его максимальное значение? Если вы не укажете такие ограничения, то вы не получите оптимального решения. –
Как было сказано в некоторых ответах, 9 + 1 не является специальной базой, если только вы не являетесь человеком, который, по совпадению, оказывается таким количеством пальцев. Но ваш компьютер этого не делает, поэтому избегайте базы 10. Это имеет смысл только при работе с данными, где кто-то действительно будет читать числа, но это интересно только тогда, когда их не более 100, а для таких небольшие количества, производительность на самом деле не имеет значения. – leftaroundabout
Вам нужно интегральное решение или с плавающей точкой? Являются константами времени компиляции 'n' или' m'? – MSalters