top1编程
← 返回题目
题解

【入门】做彩纸花边

1 条题解

  • 0
    @ 2026-7-31 15:08:34

    解题思路

    n 米彩纸,每朵花宽 x 厘米,花与花之间间隔 y 厘米,问最多能做几朵花。

    思路:

    1. 把米转成厘米:总长 = n × 100
    2. 一朵花加一个间隔 = x + y 厘米
    3. 先算能放几组完整的花+间隔:组数 = 总长 ÷ (x+y)
    4. 剩下的长度,如果还能放下一朵花(最后一朵不用再留间隔),就再加一朵

    为什么最后一朵不用间隔? 因为间隔是花与花之间的,最后一朵花后面没有花了,不需要间隔。

    举例:彩纸 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