Bài toán: k người, mỗi người làm n máy bay. 1 tờ giấy làm s máy bay. 1 gói có p tờ. Tính số gói tối thiểu.
Công thức:
- Tờ giấy cần/người =
ceil(n/s) = (n+s-1)/s. - Tổng tờ =
k * ceil(n/s). - Số gói =
ceil(tổng_tờ / p) = (tổng_tờ + p - 1) / p.
Code C++
#include <bits/stdc++.h>
using namespace std;
int solve(int k, int n, int s, int p) {
int sheets_per_person = (n + s - 1) / s;
int total_sheets = k * sheets_per_person;
return (total_sheets + p - 1) / p;
}
int main() {
cout << solve(5, 3, 2, 3) << endl; // 4
return 0;
}
Kết quả
4
5 người × 2 tờ/người = 10 tờ. 10/3 = 3.34 → 4 gói.