//木棒切割问题二分法
#include <cstdio>
int solve(int a[], int left, int right, int k) {
int mid, num;
while(left < right) {
mid = (left + right) / 2;
num = 0;
for(int i = 0; i < 3; i++) {
num = num + a[i] / mid;
}
if(num < k) {
right = mid;
}
else {
left = mid + 1;
}
}
return left;
}
int main() {
int a[3] = {10, 15, 24};
int k, L;
scanf("%d", &k);
L = solve(a, 0, a[2], k);
printf("木棒的最大长度为:%d", L-1);
return 0;
}
二分法解决木棒切割问题
最新推荐文章于 2023-08-03 14:43:30 发布