题意:
给定一块长度是n的金块,求最少分成多少块,使得1-n的所有数字都可以表示出来。
这一个是对二进制的理解。
#include <cstdio>
using namespace std;
int main() {
int nTest; scanf("%d", &nTest);
for(int t = 1; t <= nTest; t++) {
int len; scanf("%d", &len);
int cnt = 0;
int now = 1;
while(len > now) {
len = len - now;
now *= 2;
cnt++;
}
printf("Case %d: %d\n", t, cnt + 1);
}
return 0;
}
本文介绍了一个关于二进制的应用问题,通过一个具体的例子解释了如何使用二进制思想来解决将一块金块最少分割成多少部分的问题,使得这些部分能够组合表示从1到给定长度的所有整数。
265

被折叠的 条评论
为什么被折叠?



