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

news2024/11/18 21:31:59

在这里插入图片描述

一、题目描述

一农夫带着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;

五、JavaScript算法源码

function calculate(m, n, x) {
    let counts = 1; // 初始过河的一次
    if (x >= m) { // 可载狼和羊的数量大于羊的数量,可以一次过河完成
        counts++;
    } else if (n > m && n < 2 * (x - 1)) { // 一次过河无法同时运输所有的狼和羊,需要第二次过河
        counts += 2;
    } else { // 一次过河无法同时运输所有的狼和羊,需要多次运输
        while (m > 0) {
            m -= x;
            n -= x - 1;
            counts++;
        }
    }
    return counts;
}

六、效果展示

1、输入

5 3 3

2、输出

3

3、说明

第一次:2只狼
第二次:三只羊
第三次:2只羊,1只狼

在这里插入图片描述


🏆下一篇:华为OD机试真题 JavaScript 实现【相对开音节】【2022Q4 100分】,附详细解题思路

🏆本文收录于,华为OD机试(JavaScript)真题(A卷+B卷)

每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,可加入华为OD刷题群(私信即可),发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/641579.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue中如何进行表单联动与级联选择?

Vue中如何进行表单联动与级联选择&#xff1f; 表单联动和级联选择是Vue.js中常见的功能。表单联动是指在一个表单中&#xff0c;当某一个输入框的值发生变化时&#xff0c;其他输入框的值也会随之改变。级联选择是指在一个选择框中&#xff0c;当选择一个选项时&#xff0c;另…

领域建模之数据模型设计方法论 | 京东云技术团队

本文通过实际业务需求场景建模案例&#xff0c;为读者提供一种业务模型向数据模型设计的方法论&#xff0c;用于指导实际开发中如何进行业务模型向数据模型转化抽象&#xff0c;并对设计的数据模型可用性、扩展性提供了建议性思考。通过文章&#xff0c;读者可以收获到业务模型…

linux 漏洞升级、初次安装 mysql

文章目录 适用安装遇到问题 适用 1、为解决Mysql漏洞而需要离线升级mysql版本&#xff1b; 2、初次安装Mysql也可以参考本文&#xff1b; 安装 提示&#xff1a;首次安装可跳过第二步、第三步 一、查看CentOS7系统自带mariadb # 查看系统自带的Mariadb [rootiZ2ze3hm3gyjy…

最全Java锁详解:独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁

乐观锁 VS 悲观锁 乐观锁与悲观锁是一种广义上的概念&#xff0c;体现了看待线程同步的不同角度&#xff0c;在Java和数据库中都有此概念对应的实际应用。 1.乐观锁 顾名思义&#xff0c;就是很乐观&#xff0c;每次去拿数据的时候都认为别人不会修改&#xff0c;所以不会上…

英语中-后置定语

一般说来&#xff0c;形容词放在所修饰名词的前面。单个的现在分词、过去分词以及动名词作定语&#xff0c;都是放在所修饰名词&#xff08;或代词&#xff09;的前面。这些称为前置定语。 例如&#xff1a; a red flower/ an interesting story&#xff0c;这里red, interes…

SaaS人力资源管理系统的Bug

SaaS人力资源管理系统的Bug Bug1【18】 这里我是直接把代码复制过来的&#xff0c;然后就有一个空白 这是因为它的代码有问题&#xff0c;原本的代码如下所示 <el-table-column fixed type"index" label"序号" width"50"></el-table-co…

ssm+java在线考试批改阅卷系统

本次学校在线考试系统的实现过程&#xff0c;它的开发使用B/S结构即浏览器和服务器结构框架&#xff0c;采用SSM框架技术&#xff0c;数据库使用了mysql数据库&#xff0c;页面设计采用了MVC框架&#xff0c;后端采用了SSM框架技术scrip等其他一些脚本语言&#xff0c;使用到在…

hash算法详解

散列算法&#xff08;Hash Algorithm&#xff09;&#xff0c;又称哈希算法&#xff0c;杂凑算法&#xff0c;是一种从任意文件中创造小的数字「指纹」的方法。与指纹一样&#xff0c;散列算法就是一种以较短的信息来保证文件唯一性的标志&#xff0c;这种标志与文件的每一个字…

Java中的动态链接VS操作系统动态链接

在操作系统OS中为了优化内存的使用会采用一种动态链接方式&#xff0c;一个文件想要在操作系统中运行必须经过编译、汇编译、链接、装载等步骤。可以参考Java程序是怎么跑起来的。本篇主要讲解Java栈帧中动态链接部分与操作系统的的动态链接的区别与联系 操纵系统为什么需要动态…

2023年欧洲科学院院士中的华人学者简介

近日&#xff0c;2023年欧洲科学院新当选欧洲科学院院士名单出炉&#xff0c;由于入选学者接受邀请及注册的时间进度不同&#xff0c;入选名单陆续公布&#xff08;截止目前已更新135位&#xff09;。本文知识人网小编仅介绍入选名单中华人学者的情况。 欧洲科学院(Academia Eu…

优化--分类树,我从2s优化到0.1s

1.前言 分类树查询功能&#xff0c;在各个业务系统中可以说随处可见&#xff0c;特别是在电商系统中。 但就是这样一个简单的分类树查询功能&#xff0c;我们却优化了5次。 到底是怎么回事呢&#xff1f; 2.背景 我们的网站使用了SpringBoot推荐的模板引擎&#xff1a;Thym…

TiDB x Catalyst丨秒级洞悉数据价值,TiDB 帮助“客户成功 SaaS 厂商”提升用户体验

导读 Catalyst 是一家总部位于纽约的 SaaS 创业公司&#xff0c;它提供了一个直观且灵活的客户成功平台&#xff08;Custom Success Platform&#xff09;&#xff0c;可帮助客户成功团队汇聚客户数据&#xff0c;洞悉客户健康状况&#xff0c;推动客户留存和业务增长。目前 C…

「网络编程」第一讲:初识网络_网络基础1

「前言」文章是关于网络编程方面的&#xff0c;今天内容大致是网络基础&#xff0c;讲解下面开始&#xff01; 「归属专栏」网络编程 「笔者」枫叶先生(fy) 「座右铭」前行路上修真我 「枫叶先生有点文青病」 「每篇一句」 青山不改&#xff0c;绿水长流 ——白居易 目录 一、…

chatgpt赋能python:Python怎么建服务器?

Python怎么建服务器&#xff1f; 作为一名具有10年Python编程经验的工程师&#xff0c;我深入研究了Python的一些高级特性&#xff0c;其中包括Python如何建立服务器的方法。Python是一个高级的编程语言&#xff0c;可以轻松创建服务器应用程序&#xff0c;并为您的网站提供高…

redis中的intset集合源码阅读探究;基于7.0+版本

1丶什么是intset Redis 中的 intset&#xff08;整数集合&#xff09;是一种高效的数据结构选择。Intset 具有紧凑的内存布局和快速的插入、删除和查找操作&#xff0c;适用于存储大量整数&#xff0c;并且能够节省内存空间。 2丶先说优点 内存布局&#xff1a;Intset 的内存…

vue-element-admin项目-Host key verification failed.-已解决

在网上下载的element-admin项目&#xff0c;install的时候一直报错Host key verification failed&#xff0c; 实测好用&#xff01;&#xff01;&#xff01;已解决 报错问题&#xff1a;上面写到主机密钥验证失败&#xff0c;无法从远程仓库拉取。说明我们需要生成一个新的密…

基于JAVA SSM框架和jsp的学生宿舍管理系统

计算机信息技术和当前办公的信息化、自动化、网络化极大地改变了高校、企事业单位的信息管理方式&#xff0c;高效、快速、准确的信息管理已成为各行业现代管理的重要手段。目前宿舍管理人员普遍年龄偏大&#xff0c;使用笔录工作量大&#xff0c;管理难度大&#xff0c;利用学…

如何安装官网最新版Android Studio

1、进入android studio官网&#xff0c;点击下载。 2、下滑查看协议&#xff0c;勾选同意按钮&#xff0c;点击下载。 3、打开安装程序&#xff0c;点击Next。 4、选择虚拟机&#xff0c;点击Next。 5、选择安装路径&#xff0c;点击Next。 6、点击Install。 5、等待安装…

Kafka学习---2、kafka生产者、异步和同步发送API、分区、生产经验

1、kafka生产者 1.1 生产者消息发送流程 1.1.1 发送原理 在消息发生的过程中&#xff0c;设计到了两个线程——main线程和Sender线程。在main线程中创建了一个双端队列RecordAccumulator。main线程将消息发给RecordAccumulator&#xff0c;Sender线程不断从RecordAccumulato…

AST环境安装及使用

1.环境安装 AST在线解析网站&#xff1a;https://astexplorer.net/ 可以看出Parser用的是 babel/parser ,这是一个目前最流行的JS语法编译器Babel的Node.js包。 Babel是编译器。babel/parser是Babel中的解析器&#xff0c;用于解析JS语言&#xff0c;本质也是一个Node.js包 …