1 条题解

  • 0
    @ 2025-10-23 18:36:20

    思路分析

    1. 任务拆解:

    • 读取总金额n、大碗单价x、小碗单价y
    • 找出所有花光n元的购买方案
    • 要求两种碗都买,且数量都是偶数

    2. 关键点分析:

    • 大碗数量i必须是偶数:从2开始,每次加2
    • 小碗数量j必须是偶数:从2开始,每次加2
    • 需要满足:i × x + j × y = n
    • 使用双重循环枚举所有可能的偶数组合

    3. 步骤规划:

    • 读取n, x, y的值
    • 计算最多能买的大碗数量xg = n/x
    • 计算最多能买的小碗数量yg = n/y
    • 外层循环枚举大碗数量(从2到xg,步长为2)
    • 内层循环枚举小碗数量(从2到yg,步长为2)
    • 检查当前组合是否正好花光n元
    • 满足条件则输出方案

    4. 代码对应:

    • int n,x,y; cin>>n>>x>>y; → 读取输入数据
    • int xg=n/x,yg=n/y; → 计算最多能买的碗数
    • for(int i=2;i<=xg;i+=2) → 枚举大碗数量(偶数)
    • for(int j=2;j<=yg;j+=2) → 枚举小碗数量(偶数)
    • if(i*x+j*y==n) → 检查是否正好花光钱
    • cout<<i<<" "<<j<<endl; → 输出购买方案
    • 1

    信息

    ID
    230
    时间
    1000ms
    内存
    16MiB
    难度
    3
    标签
    (无)
    递交数
    470
    已通过
    260
    上传者