java题目9:100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担。计算大中小马的数目(HorsesPackGoods9)

每日小语

正是他的意图损坏了他的悟性。——《充足理由律的四重根》

思考

有点鸡兔同笼的感觉嗷,

//100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担。计算大中小马的数目(

public class HorsesPackGoods9 
{
	public static void main(String[] args)
	{
		int b = 0;//大马
		int m = 0;//中马
		int s = 0;//小马
		if(3*b+2*m+s*0.5 == 100)
		{
			System.out.println("大马数目:"+b);
			System.out.println("中马数目:"+m);
			System.out.println("小马数目:"+s);
		}
	}
	
}

我点运行运行不了?

原来是我还忽视了一个条件,就是大中小马加一起100

看了gpt后发现必须要写for循环,这是为什么?

在这个问题中,我们需要找到满足条件的大、中、小马的数量组合,使它们一共承载了100担货物。由于不知道具体的大、中、小马数量,因此我们需要遍历所有可能的组合,直到找到符合条件的解。

使用嵌套的for循环可以很好地遍历所有可能的大、中、小马数量组合。外层循环控制大马的数量,内层循环控制中马的数量,然后通过计算得到小马的数量。在每一次循环中,我们计算当前大、中、小马数量组合是否满足条件,如果满足条件则输出结果并结束程序。

因此,使用for循环可以帮助我们系统地遍历所有可能的解空间,找到符合条件的解。

遍历

当解决问题时,遍历是一种常用的方法,通过遍历可以尝试所有可能的情况,找到满足条件的解。在这个问题中,我们需要找到大、中、小马的数量,使得它们的总数为100,同时满足货物数量为100担的条件。

在代码中,我们使用了两层嵌套的循环来遍历可能的大、中马的数量。首先,外层循环遍历大马的数量`b`,范围从0到100,表示大马的数量可能从0匹到100匹。然后,在内层循环中,我们遍历中马的数量`m`,范围从0到剩余数量(100-b),这是因为中马的数量不能超过剩余的总数量。

在每一次循环中,我们计算小马的数量`s`,即总数量减去大、中马的数量。然后,我们根据题目中的条件进行判断:大马一匹承载3担货物,中马一匹承载2担货物,小马两匹承载1担货物。因此,我们计算出总货物数量是否为100担,即`3*b + 2*m + s*0.5 == 100`。

当找到满足条件的解时,我们输出大、中、小马的数量,并使用`return`语句结束程序,因为题目只要求输出一个解。

通过这种遍历的方式,我们可以尝试所有可能的情况,找到满足条件的解。遍历是一种强大的工具,可以帮助我们解决各种问题,尤其是在需要尝试多种情况的情况下。

终极代码

//100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担。计算大中小马的数目(

public class HorsesPackGoods9 
{
	public static void main(String[] args)
	{
		for (int b = 0; b <= 100; b++) 
		{ // b大马,s小马,m中马
            for (int m = 0; m <= 100 - b; m++) 
            { 
                int s = 100 - b - m; // 计算小马数量
                if(s+m+b==100&&3*b+2*m+s*0.5 == 100)
                {
                	System.out.println("大马数目:"+b);
                	System.out.println("中马数目:"+m);
					System.out.println("小马数目:"+s);
					return;
                }
            }
		}
	}
}

撒花花~遍历还没有深入我的脑海~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值