1 条题解

  • 0
    @ 2025-10-29 15:27:12

    思路分析

    1. 任务拆解:

    • 用n元钱买m只鸡
    • 公鸡5元/只,母鸡3元/只,小鸡1元/3只
    • 必须正好花完n元,正好买m只鸡
    • 找出所有可能的购买方案

    2. 关键点分析:

    • 设公鸡a只,母鸡b只,小鸡c只
    • 约束条件:
      • a + b + c = m(总只数)
      • 5a + 3b + c/3 = n(总金额)
      • c必须是3的倍数(因为小鸡3只1元)
    • 公鸡最多:n/5只
    • 母鸡最多:m - a只

    3. 步骤规划:

    • 读取n和m的值
    • 外层循环枚举公鸡数量a(0到n/5)
    • 内层循环枚举母鸡数量b(0到m-a)
    • 计算小鸡数量c = m - a - b
    • 检查c是否为3的倍数且总金额等于n
    • 输出满足条件的方案

    4. 代码对应:

    • int n,m;cin>>n>>m; → 读取总金额和总只数
    • for(int a=0;a<n/5;a++) → 枚举公鸡数量
    • for(int b=0;b<m-a;b++) → 枚举母鸡数量
    • int c=m-a-b; → 计算小鸡数量
    • if(c%3==0 && a*5+b*3+c/3==n) → 检查小鸡是3的倍数且金额正确
    • cout<<a<<" "<<b<<" "<<c<<endl → 输出方案
    • 1

    信息

    ID
    78
    时间
    1000ms
    内存
    16MiB
    难度
    4
    标签
    (无)
    递交数
    436
    已通过
    212
    上传者