1 条题解
-
0
题目描述
有一棵竹笋,一开始高度是 0 厘米。它每天都会长高,但长得越来越慢:
-
第 1 天:长 16 厘米
-
第 2 天:长 8 厘米(16 ÷ 2)
-
第 3 天:长 16/3 厘米
-
……
-
第 n 天:长 16 ÷ n 厘米
解题思路
第一步:用一个变量记录“当前高度”
准备一个变量 height,一开始是 0。
第二步:从第 1 天开始,一天一天地加
用循环,让天数 day 从 1 到 365:
height = height + 16.0 / day注意:16 / day 可能是小数,所以 height 要用小数类型。
第三步:每天加完后,检查高度够不够
如果 height >= k: 输出 day 结束程序第四步:如果 365 天都过完了还没够
循环结束后还没输出,就输出 -1。
参考代码
#include <iostream> using namespace std; int main() { int k; cin >> k; double height = 0; // 当前高度,用小数 for (int day = 1; day <= 365; day++) { height += 16.0 / day; // 第 day 天长 16/day 厘米 if (height >= k) { // 够高了! cout << day << endl; return 0; // 直接结束 } } // 365 天都过完了还没够 cout << -1 << endl; return 0; } -
- 1
信息
- ID
- 108
- 时间
- 1000ms
- 内存
- 64MiB
- 难度
- 9
- 标签
- 递交数
- 24
- 已通过
- 3
- 上传者