gpt4 book ai didi

C#高效算法基于整数的幂函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:03:47 25 4
gpt4 key购买 nike

我正在查看 The most efficient way to implement an integer based power function pow(int, int) .

这是他们得到的答案。

我试图让它适用于 C#,但我正在比较 intbool 以及所有其他东西。 . .我不明白他们为什么要比较 & 1 那不是真的吗?那有什么意义呢。看起来效率不高。

 int ipow(int base, int exp)
{
int result = 1;
while (exp)
{
if (exp & 1)
result *= base;
exp >>= 1;
base *= base;
}

return result;
}

我正在比较 exp == 但 1 仍然存在,我不知道是否需要它。

有人知道 if (exp & 1) 中的 1 是做什么用的吗?或者如果我需要它?我看不出有什么用。

最佳答案

基本上在 C 和 C++ 中,if/while 的条件是“如果表达式不为零”。

所以在这种情况下你会想要:

while (exp != 0)

if ((exp & 1) != 0) // If exp is odd

您还希望避免使用关键字 base :)

我还没有检查该算法是否适用于 C#,但这至少应该能帮助您更进一步。

关于C#高效算法基于整数的幂函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2065249/

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