uva 11636 Hello World!

时间:2023-02-20 23:08:32

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 ;
}