Java搬砖题(知识点:循环与continue的运用)

搬砖题

问题:36块砖,36人搬,男搬4,女搬3,两个小孩抬1砖,要求一次全搬完,问男、女和小孩各若干?

运用知识点:循环、循环嵌套、continue等

易错点:

1、没有看清楚条件,忽略了36人的作用

2、没有注意到小孩的数量必须是偶数

3、没有注意到数据类型的隐式转换问题

练习过程:

public class CarryBricks {
    public static void main(String[] args) {

        int numberOfBricks;
        int male;
        int female;
        int kid;

        for(male = 1; male <=9; male++){//最多需要男人9人
            for (female = 1; female <=12 ; female++) {//最多需要女人12人
//                kid = (male * 4 + female * 3) * 2;
                kid = 36 - male - female;
                if(kid % 2 != 0) continue;
//                if((4 * male + 3 * female + kid * (1/2)) == 36){
                if((4 * male + 3 * female + kid/2) == 36){
                    System.out.println("男人有" + male + "人," + "女人有" + female + "人,小孩有" + kid + "人") ;
                }
            }
        }
    }
}

参考答案:

public class MoveBricks {
   public static void main(String[] args) {
      for(int a = 0; a<=9; a++){
         for(int b = 0; b<=12; b++){
            int c = 36 - a - b;
            if (c % 2 !=0) continue;
            if (a*4 + b*3 + c/2 == 36){
               System.out.println(a + "个男," + b + "个女," + c + "个小孩");
            }
         }
      }
   }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值