BZOJ1192 [HNOI2006]鬼谷子的钱袋

水题,但是有东西,一开始一直以为是先二进制算一下,剩下的如果是2的次幂就拆成1+某个数

实在是错到不行,看了别人的才发现原来最后多出来一个钱袋是没必要的。。。。

对于n,只要求出第一个2^k>=n 就是答案,9是一个很好的例子,9可以拆成1,2,3,5

 

Ps:这题还特意玩了一下,最短把代码缩到了100B实在是减不了了。。别人的80+不知道是怎么搞的

1 #include <cstdio>
2 int main(){
3     int n,i=1,j=0;scanf("%d",&n);
4     for(;i<=n;i*=2,j++);
5     printf("%d\n",j);
6     return 0;
7 }

 

posted on 2015-08-06 01:21  round_0  阅读(814)  评论(0编辑  收藏  举报

导航