华为OD机试真题------分糖果
题目描述:
小明从糖果盒中随意抓一把糖果,每次小明会取出一半的糖果分给同学们。当糖果不能平均分配时,小明可以选择从糖果盒中(假设盒中糖果足够)取出一个糖果或放回一个糖果。小明最少需要多少次(取出、放回和平均分配均记一次),能将手中糖果分至只剩一颗。
输入描述:
一个整数n,表示小明最初抓取的糖果数(n小于某个上限,如1000000或10000000000)。
输出描述:
输出小明最少需要多少次操作能将手中糖果分至只剩一颗。
解题思路:
-
理解题意:首先明确,每次操作包括取出糖果、放回糖果和平均分配糖果三个步骤中的任意一个或多个,且均记作一次操作。
-
数学分析:为了最小化操作次数,我们希望每次都能尽量平均分配糖果,减少因不能平均分配而需要额外操作的情况。一个直观的思路是,如果糖果总数是偶数,则直接平均分配;如果是奇数,则通过增加或减少一个糖果使其成为偶数,再进行平均分配。
-
动态规划或贪心策略:虽然此题看似可以通过简单的数学变换和迭代解决,但在面对大数据量时,可能需要采用更高效的算法,如动态规划或贪心算法来优化计算过程。然而,对于本题而言,由于每次操作都可以直接基于当前糖果数量进行调整,因此贪心策略(即每次尽可能平均分配)往往是有效的。
-
特殊情况处理:当糖果数量很少时(如1或2颗),需要特殊处理以避免无效操作。
-
编程实现:根据以上思路,编写代码实现算法。注意处理边界条件和异常情况。
示例:
- 输入:15
- 输出:5
- 解释:
- 15+1=16(因为15是奇数,所以加1变为偶数)
- 16/2=8
- 8/2=4
- 4/2=2
- 2/2=1
共进行5次操作。
上代码:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;public class CandyDistribution {private static final Logger log = LoggerFactory.getLogger(CandyDistribution.class);/*** 计算最少的操作次数使得糖果数量减少到 1** @param n 初始糖果数量* @return 最少的操作次数*/public static int minOperationsToSingleCandy(int n) {// 初始化操作次数为 0int steps = 0;// 当糖果数量大于 1 时,继续执行操作while (n > 1) {// 如果糖果数量为奇数,执行+1操作if (n % 2 == 1) {// 偶数直接除以 2n++;// 累计操作次数steps++;} else {// 如果糖果数量为偶数,执行除以2操作n /= 2;// 累计操作次数steps++;}// 记录日志,用于调试过程log.error("当前steps 的值:{}", steps);}// 返回最终的操作次数return steps;}public static void main(String[] args) {int n = 15;System.out.println("最少需要 " + minOperationsToSingleCandy(n) + " 次操作。");}
}相关文章:
华为OD机试真题------分糖果
题目描述: 小明从糖果盒中随意抓一把糖果,每次小明会取出一半的糖果分给同学们。当糖果不能平均分配时,小明可以选择从糖果盒中(假设盒中糖果足够)取出一个糖果或放回一个糖果。小明最少需要多少次(取出、放…...
Kotlin:变量声明,null安全,条件语句,函数,类与对象
目录 一,变量声明 1.1 var和val 1.2 类型推断 1.3 Null安全 1.3.1 处理可为null性 二,条件语句 2.1条件语句与条件表达式 2.2 智能类型转换 三,函数 3.1 简化函数声明 3.2 匿名函数 3.3 高阶函数 四,类与对象 4.1 构…...
C--结构体和位段的使用方法
各位看官如果您觉得这篇文章对您有帮助的话 欢迎您分享给更多人哦 感谢大家的点赞收藏评论,感谢您的支持!!! 一:结构体 首先结构体我们有一个非常重要的规则 非常重要: 我们允许在初始化时自动将字符串字面…...
卷积神经网络-迁移学习
文章目录 一、迁移学习1.定义与性质2.步骤 二、Batch Normalization(批次归一化)三、ResNet网络1.核心思想2.残差结构(1)残差块(2)残差结构类型 四、总结 一、迁移学习 迁移学习(Transfer Lear…...
数据库:PL/SQL
变量 变量 建议使用V开头 作用: 用来保存一个数据 普通变量 declare --定义一个变量(保存一个数据) v_email varchar2(20); --定义变量并且赋值 v_ename varchar2(20) :张三; beginv_email :553215qq.com;dbms_output.put_line(v_email);dbms_output…...
迅雷笔试 最长相等子段数列长度 滑动窗口
👨🏫 牛马Code:最长相等子段数列长度 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; import java.util.HashMap;public class Main {// 创建一个输入流读取器,用于读取控制台输…...
MMD模型一键完美导入UE5-VRM4U插件方案(一)
1、下载pmx模型 1、去模之屋官网下载MMD模型,模之屋 2、下载完成得到pmx和Texture文件 2、下载并启用VRM4U插件 1、下载VRM4U插件, VRM4U,点击Latest下载对应引擎版本 2、将插件放到Plugins目录,然后...
bench.sh:一行命令测试Linux服务器基准测试
简介 bench.sh 是一个 Linux 系统性能基准测试工具。它的测试结果如下图:给出服务器的整体配置信息,IO 性能,网络性能。很多人使用它测试 vps 性能。 一键运行 服务器在国外可以使用以下命令运行测试 wget -qO- bench.sh | bash复制…...
广播IP与共享IP的关系
什么是广播IP? 广播IP是指一种特殊的IP地址,用于在网络中向所有设备发送信息。广播地址通常是某个网络段的最后一个地址,例如,在一个子网掩码为255.255.255.0的网络中(即/24子网),其网络地址可…...
正则表达式和re模块
正则表达式(Regular Expression,简称Regex或RegExp)是计算机科学中的一个重要概念,它通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式是对字符串操作的一种逻辑公式,通过事先定义…...
不同的浏览器、服务器和规范对 URL 长度的限制
不同的浏览器、服务器和规范对 URL 长度的限制有所不同。通常的限制如下: 1. 浏览器限制: 常见浏览器对 URL 长度的限制在 2,000 到 8,000 个字符之间。例如: Internet Explorer: 大约 2,083 个字符。Google Chrome: 理论上支持超过 32,00…...
NASA:ATLAS/ICESat-2 L3 A沿线内陆地表水数据V006数据集
目录 简介 代码 引用 网址推荐 0代码在线构建地图应用 机器学习 ATLAS/ICESat-2 L3A Along Track Inland Surface Water Data V006 简介 ATLAS/ICESat-2 L3 A沿线内陆地表水数据V006 ATLAS/ICESat-2 L3 A沿线内陆地表水数据V006是指由ATLAS/ICESat-2卫星获取的针对陆地…...
数据结构之链表(1),单链表
目录 前言 一、什么是链表 二、链表的分类 三、单链表 四、单链表的实现 五、SList.c文件完整代码 六、使用演示 总结 前言 本文讲述了什么是链表,以及实现了完整的单链表。 ❤️感谢支持,点赞关注不迷路❤️ 一、什么是链表 1.概念 概念:链…...
如何构建鲁棒高性能 Prompt 的方法?
你好,我是三桥君 在当今时代,利用大型语言模型如ChatGPT进行文本生成和交互已成为一种趋势。然而,要充分发挥这些模型的能力,尤其是在生产环境中,我们需要精心设计和优化我们的提示词(prompt)。…...
基于Springboot+微信小程序 的高校社团管理小程序(含源码+数据库+lw)
1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定…...
Vue 响应式监听 Watch 最佳实践
一. 前言 上一篇文章我们学习了 watch 的基础知识,了解了它的基本使用方法及注意事项,本篇文章我们继续了解在Vue 中 响应式监听 watch 的妙用。了解 watch 的基础使用请参考上一篇文章: 详解 Vue 中 Watch 的使用方法及注意事项https://bl…...
md编辑器语法
这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…...
RabbitMQ常用管理命令及管理后台
RabbitMQ管理命令 1、用户管理1.1、新增一个用户1.2、查看当前用户列表1.3、设置用户角色1.4、设置用户权限1.5、查看用户权限 2、RabbitMQ的web管理后台2.1、查看rabbitmq 的插件列表2.2、启用插件2.3、禁用插件2.4、访问RabbitMQ的web后台2.4、通过web页面新建虚拟主机 ./rab…...
从准备面试八股文,感悟到技术的本质
工作前几年听说过,大学最重要的几门课其实是数据结构和算法、操作系统、计算机组成原理、计算机网络。 初听时不以为然,感觉没什么用。 近期准备面试八股文得到了一些感悟。这句话随着工作年限和对程序的理解越来越深入,含金量越来越高。 最…...
云手机的默认ip地址是什么
云手机(Cloud Phone)是一种基于云计算技术的虚拟手机,它可以在云端运行,使用户能够通过互联网访问手机应用和服务。云手机的IP地址通常取决于以下几个因素: 1. 云服务提供商 不同的云服务提供商(如AWS、G…...
GetQzonehistory终极指南:三步快速备份QQ空间全部历史说说
GetQzonehistory终极指南:三步快速备份QQ空间全部历史说说 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 在数字记忆时代,QQ空间承载了无数用户的青春回忆和成长…...
LabVIEW生产者消费者模式:队列解耦与多任务架构实战
1. 项目概述:从“单线程”到“流水线”的思维跃迁如果你用过LabVIEW,大概率写过那种“一个While循环包打天下”的程序。按钮事件、数据采集、逻辑处理、界面更新,全都塞在一个循环里,顺序执行。程序简单时还好,一旦任务…...
YOLOv5/v7改进系列——融合EfficientNetV2主干网络的轻量化部署实践
1. 为什么选择EfficientNetV2作为YOLO的主干网络 在目标检测领域,YOLO系列算法因其出色的实时性能而广受欢迎。但当我们把YOLOv5/v7部署到移动端或嵌入式设备时,模型的计算量和内存占用就成了必须面对的难题。这时候,EfficientNetV2就像一位轻…...
2026最权威的六大AI辅助论文神器推荐榜单
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 飞速发展着的人工智能技术,在学术领域里应用变得越发广泛,特别是在毕…...
纺织行业智能化升级进入深水区:AI验布机从“可选项”变为“必选项”
过去三年,走访过数十家纺织服装企业的行业观察者会发现一个明显的变化:2023年时,AI验布机还是展会上引人驻足的新奇设备;到了2025年,它已经成为越来越多工厂标准配置的一部分。这一转变背后,折射出整个纺织…...
仅限首批200位开发者获取:ElevenLabs未公开的僧伽罗文Fine-tuning API沙箱权限+定制音色训练模板(含Kandy方言语料集)
更多请点击: https://intelliparadigm.com 第一章:ElevenLabs僧伽罗文语音合成的技术突破与本地化意义 ElevenLabs 在 2024 年首次将僧伽罗文(Sinhala)纳入其多语言语音合成支持矩阵,标志着南亚高复杂度音节文字系统在…...
上蔡假发定制亲测:这家2026年稳
在假发定制领域,用户普遍面临三大核心挑战:其一,传统假发产品在逼真度与舒适度之间难以平衡。数据显示,超过65%的消费者反映佩戴假发后出现头皮闷热、出汗不适等问题,尤其在夏季或运动场景下,透气性与防水性…...
ElevenLabs藏文语音生成上线仅72小时:开发者必须立即掌握的5个API调用避坑要点
更多请点击: https://intelliparadigm.com 第一章:ElevenLabs藏文语音生成上线背景与技术意义 藏语作为中国官方认可的少数民族语言之一,拥有超过600万母语使用者,主要分布在西藏、青海、四川、甘肃和云南等地区。长期以来&…...
手把手调SerDes眼图:从FFE系数配置到示波器实测避坑指南
手把手调SerDes眼图:从FFE系数配置到示波器实测避坑指南 在高速数字电路设计中,SerDes(串行器/解串器)技术已经成为现代通信系统的核心。无论是数据中心的光模块,还是消费电子中的USB4接口,SerDes都扮演着关…...
基于CircuitPython的红外遥控发射器:从原理到实现的万能控制方案
1. 项目概述:打造你的万能红外遥控发射器搞嵌入式开发的朋友,对红外遥控肯定不陌生。家里电视、空调、风扇的遥控器,本质上都是一个红外信号发射器。你有没有想过,自己动手做一个能模拟所有遥控器的“万能发射器”?今天…...
