题意:有n个句子要打印,先手打一遍,问最少复制粘贴几次可以达到目标数量。
题解:容易得出答案是log2(n)向上取整。
#include <stdio.h>
#include <math.h>
const int N = 10002;
int ans[N];
int main() {
int n, cas = 1;
ans[0] = 0;
for (int i = 1; i < N; i++)
ans[i] = ceil(log(i) / log(2));
while (scanf("%d", &n) && n >= 0)
printf("Case %d: %d\n", cas++, ans[n]);
return 0;
}