华为OD机试真题 Java 实现【狼羊过河】【2022Q4 100分】,附详细解题思路

一、题目描述

一农夫带着m只羊,n只狼过河,农夫有一条可载x只狼/羊的船;农夫在时或者羊的数量大于狼时,狼不会攻击羊;

农夫在不损失羊的情况下,运输几次可以完成运输?

返程不计入次数。

二、输入描述

输入参数为 m, n , x;

m 为羊的数量、n为狼的数量、x为可载狼和羊的数量。

三、输出描述

返回运输次数即可。

如果无法完成运输返回0。

四、解题思路

  1. 可载狼和羊的数量 > 羊的数量;
  2. 运输次数+1;
  3. 狼的数量 > 狼的数量 且 狼的数量 < 2 * (x - 1);
  4. 需要第二次运输+1;
  5. 可载狼和羊的数量 < 羊的数量,需要多次运输;
  6. 狼的数量减去x-1,羊的数量减去x;
  7. 输出运输次数counts;

五、Java算法源码

public static void main(String<

你可能感兴趣的:(java,华为,开发语言,算法,学习)