题意:
给定一块长度是n的金块,求最少分成多少块,使得1-n的所有数字都可以表示出来。
这一个是对二进制的理解。
#include <cstdio>
using namespace std;
int main() {
int nTest; scanf("%d", &nTest);
for(int t = 1; t <= nTest; t++) {
int len; scanf("%d", &len);
int cnt = 0;
int now = 1;
while(len > now) {
len = len - now;
now *= 2;
cnt++;
}
printf("Case %d: %d\n", t, cnt + 1);
}
return 0;
}