做彩纸花边

【分析问题】
这是一个单位换算和数学计算问题:

  • 输入:n(米),x(厘米),y(厘米)
  • 核心逻辑:计算在有限长度内能容纳多少朵花
  • 关键点:需要统一单位(将米转换为厘米),考虑花与间隔的排列方式
  • 计算思路:
  1. 将总长度从米转换为厘米:n = n × 100 (常用的调整变量值技巧)
  2. 每朵花占用空间:x + y 厘米(一朵花加一个间隔)
  3. 但最后一朵花后面不需要间隔,所以需要特殊处理
  • 计算方法:先计算能放多少组”花+间隔”,再看剩余空间是否能再放一朵花

【建立模型(伪代码)】

读取 n, x, y
将总长度转换为厘米:n = n * 100
计算每组(花+间隔)的长度: x + y
计算完整组的数量:flower = n / (x+y)  (注意,使用整数变量存小数数值会删除小数的技巧)
计算剩余长度:n-flower*(x+y)
如果剩余长度 >= x,则可以再多放一朵花
否则,只能放 flower  朵花
输出总花朵数

【编写代码】

#include <iostream>
using namespace std;

int main() {
    double n, x, y;
    cin >> n >> x >> y;
    
    // 将总长度从米转换为厘米,统一单位
    n = n * 100;
      
    //计算能够制作的数量
    //注意,这里把除得的小数赋值给整数,会直接删除小数部分
    //如5.99 赋值后是5,不会四舍五入
    int flower = n / (x+y);
    
    // 如果有余数,看余数能否够制作一个的
    if((n-flower*(x+y))>=x){
        flower++;
    }
    
    cout << flower << endl;
    
    return 0;
}

【保存编译运行】