C#高效算法整数幂函数
发布时间:2020-12-15 19:34:14 所属栏目:百科 来源:网络整理
导读:我在看 The most efficient way to implement an integer based power function pow(int,int). 这是他们得到的答案. 我试图让它适用于C#,但我正在将int与bool和所有其他东西进行比较. . .我无法弄清楚他们为什么要比较和1这不是那个意思和真实吗?有什么意义
我在看
The most efficient way to implement an integer based power function pow(int,int).
这是他们得到的答案. 我试图让它适用于C#,但我正在将int与bool和所有其他东西进行比较. . .我无法弄清楚他们为什么要比较和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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |