C语言程序设计-36砖36人搬砖问题

要求:

现有36块砖,由男人、女人、小孩共36个人搬。已知男人一次搬4块,女人一次搬3块,2个小孩抬1块砖,要求一次性刚好搬完。问男人、女人、小孩各多少人?

分析:

由于总共有36个人和36块砖,我们可以设男人有x人,女人有y人,小孩有z人。
根据题目条件,男人搬的砖块数是4x,女人搬的砖块数是3y,小孩搬的砖块数是z/2(因为2个小孩抬1块砖)。
我们需要满足以下两个条件:
人数总和:x + y + z = 36
砖块数总和:4x + 3y + z/2 = 36
由于小孩每次需要2人搬一块砖,所以z必须是偶数。

代码

#include <stdio.h>  // 引入标准输入输出库  
  
void main(){  // 主函数入口  
    int men, women, children;  // 定义三个整型变量:men表示男人数量,women表示女人数量,children表示小孩数量  
  
    // 外层循环,用于遍历男人数量的可能值(从0到8)  
    for(men=0; men<9; men++){  
        // 内层循环,用于遍历女人数量的可能值(从0到11)  
        for(women=0; women<12; women++){  
            // 计算小孩的数量,总人数固定为36人  
            children = 36 - women - men;  
  
            // 判断是否满足以下两个条件:  
            // 1. 男人、女人和小孩的总搬砖量(男人每人4块,女人每人3块,小孩每人半块)是否等于36块  
            // 2. 小孩的数量是否为偶数(%2==0表示小孩数量为偶数)  
            if((4*men + 3*women + children/2 == 36) && (children % 2 == 0)){  
                // 如果满足条件,则输出男人、女人和小孩的数量  
                printf("男人:%d\n", men);  
                printf("女人:%d\n", women);  
                printf("小孩:%d\n", children);  
            }  
        }  
    }  
}

结果

  • 34
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

非洲养老号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值