问。编写一个读取正整数的程序,然后找到大于或等于读取数的2的最小幂。例如,如果程序读取值25,则应注意32 = 2 ^ 5是2的最小幂,大于或等于25.
我的方法:
**
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num1, n;
int num2 = 2^n;
printf("Please type in num1: ");
scanf("%d", &num1);
n = 0;
while (num1 > num2)
{
n=n+1;
}
printf("The power value is %d", n);
return (0);
}
** 我还是个初学者......
答案 0 :(得分:1)
当你的循环开始时,num1
有一些特定的值,num2
有另一个值。
每次循环播放时,都不会更改 值 所以表达式将永远保持真实,循环将永远运行,永不退出!
如果希望循环最终结束,则必须以某种方式更改循环的表达式!
您应该在循环中修改num1
或num2
的值。
答案 1 :(得分:0)
试试这是算法快速
int a, b = 1;
printf("Enter no \n");
scanf("%d",&a);
while (a >= b)
{
b = b << 1 ;
}
printf("%d",b);