问:编写一个程序,该程序读取一个正整数,然后找到大于或等于读取的数字的最小幂。例如,如果程序读取的25的值,但是应当注意,32 = 2^5是两个大于或等于25。在以下代码中使用WHILE LOOP的正确方法是什么?
我的方法的最小功率:
**
#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);
}
** 我还是一个初学者所以......
你需要写什么程序输出,所以我们可以提供直接的反馈。 while循环本身被正确格式化,但可能不会给你正确的输出。 –
所以你应该拿笔和纸,算出算法。然后,你可以尝试在C中翻译它,如果你恰好被卡住了某处,请随时来这里问问。但不要指望SO用户为你编码。如果你已经知道你想用C编写代码,那么编辑问题并用简单的英文写,这样我们就可以讨论你的问题。 –
'2^n'对于功率n是* * 2。使用math.h中定义的pow函数或位移('1 << n') – Sinkingpoint