我也是5.。。 int usen = 1; //用的小伞 int usem = 0;//用的大伞 int time1= 1;//时间 void func(int c, int n, int m) { if (c <= 0) return ; int backp = 2 * usen + 3 * usem; if (c - backp <= 0) return; if (m <= backp) {//大伞少于人数 usem = m; if (backp - m < n)  usen = backp - m;  else usen = n; } else {//大伞多于人数 usem = backp;  //伞数 = 人数 usen = 0; } time1+= 2; func(c - backp, n, m); } int main() { int n; cin >> n; vector<vector<int>> useVector; while (n--) { vector<int> tempVector; int c, n, m; cin >> c >> n >> m; tempVector.push_back(c); tempVector.push_back(n); tempVector.push_back(m); useVector.push_back(tempVector); } vector<int> result; for (int i = 0; i < useVector.size(); i++) { func(useVector[i][0], useVector[i][1] + 1, useVector[i][2]); result.push_back(time1); time1 = 1; } for (auto i : result) { cout << i << endl; } return 0; }