繁体   English   中英

2 ^幂而不使用math.pow和乘法

[英]2^power without using math.pow and multiplication

有没有办法在不使用math.pow或乘法运算符的情况下使用代码2 ^ power。 至今,

我虽然使用了2个计数器和附加功能,但我的程序似乎没有用。 到目前为止,这是我的工作。

int counter=0; // k 
int userNumber=0; // p 
int power=0;
int sum=0;

cout << "Enter a non-negative number: ";
cin >> userNumber;


while (userNumber > counter)
{
    power +=2;
    counter++;
    power++;
}

sum = power - 1;
// post-condition: Sum = 2^p -1
cout << "The output is " << sum << endl;
return 0;

您可以使用位操作计算2^n 简单地说:

1 << n;

这是有效的,因为使用二进制数进行左移相当于乘以2。

查看ldexp函数。

   pow = 1;
   while(userNumber > counter){
        pow = pow+pow;
        counter++;
   }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM