标签:
水题,但是有东西,一开始一直以为是先二进制算一下,剩下的如果是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 }
标签:
原文地址:http://www.cnblogs.com/GJKACAC/p/4706285.html