【发布时间】:2021-11-04 00:55:30
【问题描述】:
我有两个数字给定 x 和 n 的问题,任务是找到 x 的幂,它恰好等于或小于 n 。我知道我可以通过启动一个循环来做到这一点,但它似乎不是那么有效的解决方案,我想知道在 o(1) 中的任何解决方案或其他有效的解决方案。
【问题讨论】:
-
你想要最大的这样的权力吗?这只是 x ^ floor(log_base_x (n) ),假设 x > 1
-
是的。谢谢你
-
我不建议将
log与floor一起使用。可能会有一些令人惊讶的舍入错误。循环解决方案只需要 log n / log x 迭代,如果 n 最多为 64 位整数,则不会很多。