gpt4 book ai didi

c# - 你如何在 C# 中进行 *integer* 求幂?

转载 作者:IT王子 更新时间:2023-10-29 03:53:30 27 4
gpt4 key购买 nike

.NET 中内置的 Math.Pow() 函数将一个 double 基数提升为一个 double 指数并返回一个 结果。

对整数执行相同操作的最佳方法是什么?

补充:似乎可以将 Math.Pow() 结果转换为 (int),但这是否总是会产生正确的数字并且没有舍入错误?

最佳答案

一个相当快的可能是这样的:

int IntPow(int x, uint pow)
{
int ret = 1;
while ( pow != 0 )
{
if ( (pow & 1) == 1 )
ret *= x;
x *= x;
pow >>= 1;
}
return ret;
}

请注意,这不允许负幂。我会把它留给你作为练习。 :)

已添加:哦,是的,差点忘了 - 还要添加上溢/下溢检查,否则您可能会遇到一些令人讨厌的意外。

关于c# - 你如何在 C# 中进行 *integer* 求幂?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/383587/

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