加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读