题目大意:给你一个字符串,有一个操作是复制粘贴。
假设有n个字符串,经过复制粘贴后字符串的数量可以达到[n,2n]
问最多执行几次复制粘贴可以使一个字符串变成m个字符串
解题思路:每次都按最多的复制,看n是属于第几个区间的就可以了
#include<cstdio>
int num[20];
void init() {
num[0] = 1;
for(int i = 1; i < 20; i++)
num[i] = num[i - 1] * 2;
}
int main() {
int N, mark = 1;
init();
while(scanf("%d",&N) == 1) {
if(N < 0)
break;
int temp;
for(int i = 0; i < 20; i++)
if(N <= num[i]) {
temp = i;
break;
}
printf("Case %d: %d\n",mark++, temp);
}
return 0;
}