[COCI 2009/2010 - Constest #7 COKOLADA]对二进制数的理解_edward_mj ...
【题目链接】
【题目大意】
给出一个尺寸N。
你需要取一个2^k (k是任你选的)的巧克力出来,然后切若干刀(每刀把一个巧克力切开成两半一样大小的)
最终在其中取出若干个块巧克力,使得加起来的尺寸等于N。
最终输出2^k和切得刀数。
在保证2^k最小的前提下,切刀数要最少。
【算法分析】
同属于被{ms}题= =
假如N=2^k,那么直接输出  2^k 0
否则输出最小的一个k满足,N<2^k (用log2求就可以了),
然后输出将n变成二进制以后从个位数上去的{dy}个“1”和k的差即可。
【其它】
YY一下就懂了。
【CODE】
#include <cstdio>
#include <cstdlib>
#include <cmath>

int main(){
int n,LG,i;
scanf("%d",&n);
LG=(int)(log(n)/log(2)+1e-7);
if (1<<LG==n) printf("%d 0\n",n);
else{
LG++;
i=0;
while (n%2==0){
i++;
n/=2;
}
printf("%d %d\n",1<<LG,LG-i);
}
}


郑重声明:资讯 【[COCI 2009/2010 - Constest #7 COKOLADA]对二进制数的理解_edward_mj ...】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——