UVA 11636(p78)----Hello World!

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,cas=0;
    while(scanf("%d",&n)!=EOF)
    {
        if(n<0) break;
        int step=0,now=1;
        for(int i=1;i<=20;i++)
        {
            if(now>=n) break;
            now*=2;
            step++;
        }
      printf("Case %d: %d\n",++cas,step);
    }
    return 0;
}

题目地址:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2683

题解:贪心。每次复制全部sum*=2(使得总和最大),n-sum>0时最后只需一步即可。

你可能感兴趣的:(UVA 11636(p78)----Hello World!)