走出草地 (题目&答案每天一练)
2026-08-16 15:38:44
发布于:广东
描述
“风雨浸衣骨更硬,野菜充饥志越坚。”
红军长征过草地时,补给极其困难。每位战士身上的干粮(N)是走出草地的关键。
假设行军非常艰苦,消耗量随着体力的下降每天都在增加:
第 1 天行军消耗 1 份干粮;
第 2 天行军消耗 2 份干粮;
第 3 天行军消耗 3 份干粮;
以此类推,第 i 天需要消耗 i 份干粮。
每天清晨,战士会检查袋子里的剩余干粮。如果剩余量足够支付当天的消耗(即 N≥i),则继续坚持行军;如果不够,则意味着弹尽粮绝,必须等待救援。
输入一个整数 N,请计算战士靠这些干粮最多能完整行军多少天。
输入描述
一个整数 N(初始干粮总数)。
输出描述
一个整数(完整行军的天数)。
输入输出样例
输入样例 1
7
输出样例 1
3
输入样例 2
10
输出样例 2
4
输入样例 3
100000
输出样例 3
446
| 天数 | 当日需求 | 剩余物资判断 | 操作结果 | 剩余物资 |
|---|---|---|---|---|
| 第 1 天 | 1 份 | 7≥1,足够 | 消耗 1 份 | 6 份 |
| 第 2 天 | 2 份 | 6≥2,足够 | 消耗 2 份 | 4 份 |
| 第 3 天 | 3 份 | 4≥3,足够 | 消耗 3 份 | 1 份 |
| 第 4 天 | 4 份 | 1<4,不足 | 无法坚持 | - |
结论:只能坚持 3 天。
数据范围
1≤N≤10
答案(不唯一):
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int day=1,cnt=0;
while(n>=day){
n-=day;
day++;
cnt++;
}
cout<<cnt;
return 0;
}









全部评论 1
LaTeX 拉完了
1周前 来自 上海
0?
1周前 来自 广东
0你自己看看表格那
1周前 来自 上海
0感谢提醒,已更正~
1周前 来自 广东
0





















有帮助,赞一个