题意就不说了,简单的二分就可以了,应当是算法初学者的一个Hello world程序吧!
只是建议用乘法去做,不要用除法去求解~注意输入的终止符是负数
1 #include <stdio.h> 2 #include <iostream> 3 using namespace std; 4 int main(){ 5 int n, cas = 1; 6 while(scanf("%d", &n)!=EOF && n>0){ 7 int i = 1, cnt = 0; 8 while(true){ 9 if(i>=n) break; 10 i *= 2; 11 cnt++; 12 } 13 printf("Case %d: %d\n", cas++, cnt); 14 } 15 return 0; 16 }