https://vjudge.net/problem/UVA-11636
题意:
希望输出n条语句,但是并不会循环,所以只能复制粘贴,一条语句经过复制粘贴后可以变为2条,2条变成4条。。。。每次可以只选择一部分进行复制粘贴。
问最少经过多少次可以到n,最开始只有1句。
思路:
2^k >= n,输出k。
wa:
1的时候输出0 orz,特殊情况记得特判。
代码:
#include <stdio.h>
#include <string.h> int main()
{
int n;
int kase = ; while (scanf("%d",&n) && n > )
{
int ans = ;
int sum = ; if (n == )
{
printf("Case %d: %d\n",++kase,);
continue;
} for (int i = ;;i++)
{
sum *= ; if (sum >= n)
{
ans = i;
break;
}
} printf("Case %d: %d\n",++kase,ans);
} return ;
}