gpt4 book ai didi

C++:如何测试一个数字是否是十的幂?

转载 作者:IT老高 更新时间:2023-10-28 22:00:22 25 4
gpt4 key购买 nike

我想测试一个数字 double x 是否是 10 的整数幂。我也许可以使用 cmath 的 log10 然后测试是否 x == ( int) x?

编辑:实际上,我的解决方案不起作用,因为 double 可以很大,比 int 大得多,也可以很小,比如分数。

最佳答案

查找表将是迄今为止最快、最精确的方法;只有大约 600 次方 10 可以表示为 double 。您可以使用哈希表,或者如果该表是从小到大排序的,您可以使用二分法快速搜索。

这样做的好处是,当且仅当您的数字恰好是最接近 IEEE 双倍数的 10 次幂时,您才会获得“命中”。如果这不是您想要的,您需要更准确地了解正是您希望您的解决方案如何处理许多 10 的幂不能完全表示为 double 的事实。

最好的建表方式大概是使用string->float转换;这样,希望您的图书馆作者已经解决了如何以尽可能提供最精确答案的方式进行转换的问题。

关于C++:如何测试一个数字是否是十的幂?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2551657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com