题解
【入门】做彩纸花边
1 条题解
-
0
解题思路
n 米彩纸,每朵花宽 x 厘米,花与花之间间隔 y 厘米,问最多能做几朵花。
思路:
- 把米转成厘米:总长 = n × 100
- 一朵花加一个间隔 = x + y 厘米
- 先算能放几组完整的花+间隔:组数 = 总长 ÷ (x+y)
- 剩下的长度,如果还能放下一朵花(最后一朵不用再留间隔),就再加一朵
为什么最后一朵不用间隔? 因为间隔是花与花之间的,最后一朵花后面没有花了,不需要间隔。
举例:彩纸 0.62 米 = 62 厘米,花宽 4.5,间隔 1.2
- 一组 = 4.5 + 1.2 = 5.7 厘米
- 62 ÷ 5.7 = 10 组,剩 5 厘米
- 剩的 5 厘米 ≥ 4.5,还能再做一朵花
- 总共 10 + 1 = 11 朵
参考代码
#include <iostream> using namespace std; int main() { double n, x, y; cin >> n >> x >> y; double total = n * 100; // 米转厘米 double unit = x + y; // 一朵花 + 一个间隔 int cnt = (int)(total / unit); // 完整组数 double rest = total - cnt * unit; // 剩余 if (rest >= x) { cout << cnt + 1 << endl; // 还能做一朵 } else { cout << cnt << endl; } return 0; }复杂度分析
- 时间复杂度:O(1)
- 空间复杂度:O(1)
- 1