关闭

UVA - 11636 Hello World! (贪心)

标签: 贪心
388人阅读 评论(0) 收藏 举报
分类:

思路:复制次数最少并且可以部分复制,那么贪心地让当前尽量多的复制,如果最后一次复制会超过n,那就部分复制。即满足(1<<x)n并且x尽量小。


AC代码

#include <stdio.h>
const int maxn = 20;
int bit[maxn];

void init() {
    bit[0] = 1;
    for(int i = 1; i < maxn; i++) {
        bit[i] = bit[i-1] * 2;
    }
}

int main() {
    init();
    int n, kase = 1;
    while (scanf("%d", &n) == 1 && n > 0) {
        int ans;
        for(ans = 0; ans < maxn; ans++) {
            if(bit[ans] >= n) {
                break;
            }
        }
        printf("Case %d: %d\n", kase++, ans);
    }
    return 0;
}

如有不当之处欢迎指出!

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:95142次
    • 积分:4755
    • 等级:
    • 排名:第6358名
    • 原创:400篇
    • 转载:6篇
    • 译文:0篇
    • 评论:13条
    博客专栏