/*
就是尽量让复制粘贴次数最少,达到需要的条数(可以只复制其中的一部分)
递推公式 dp[j]=dp[j/2]+1;
*/
#include<stdio.h>
#include<string.h>
#define N 10001+10
int dp[N];
void solve()
{
memset(dp,0,sizeof(dp));
dp[0]=0;
dp[1]=0;
for(int i=1;i<N;i=i*2)
{
for(int j=i+1;j<=2*i && j<N;j++)
dp[j]=dp[i]+1;
}
}
int main()
{
solve();
int n;
int Case=1;
while(scanf("%d",&n)!=EOF)
{
if(n<0)
break;
printf("Case %d: %d\n",Case++,dp[n]);
}
return 0;
}
UVa 11636 Hello World!
最新推荐文章于 2022-07-11 11:56:57 发布