有没有办法在不使用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;
Run Code Online (Sandbox Code Playgroud)
fli*_*ght 75
您可以2^n使用位操作进行计算.简单地说:
1 << n;
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为使用二进制数进行左移相当于乘以2.
gib*_*tar -5
pow = 1;
while(userNumber > counter){
pow = pow+pow;
counter++;
}
Run Code Online (Sandbox Code Playgroud)