一只骆驼每次最多负重K只香蕉,而它每走1公里要吃掉1只香蕉,不吃完不肯走。现在这只骆驼要去到N公里以外的地方,如果N > K,那么即使骆驼装满了香蕉,也无法1次走到目的地,不过骆驼可以在中途设置一些补给点,先把一些香蕉运过去,下次经过时可以在这些地方进行补给。这样一来便能走到距离 > K的地方。现在给出N和K,问骆驼走到目的地最少需要消耗多少香蕉。
Input
2个整数N K,中间用空格分隔。(1 <= N, K <= 10000,N <= 5 * K)
Output
输出最少需要消耗多少根香蕉。
Input示例
1000 500
Output示例
3837#include<stdio.h> #include <iostream> #include<cmath> using namespace std; int main(void) { double n, k, base, result; cin >> n >> k; result = 0, base = 1; while (n - k / base >= 0) { n -= k / base; result += k; base += 2; } if (n > 0) { result += n * base; } cout << (int)ceil(result) << endl; return 0; }