时间限制:C/C++ 1秒,其他语言 2秒
空间限制:C/C++262144K,其他语言524288K
64bit IO Format:%lld
语言限定: C(clang11), C++(clang++11), Pascal(fpc 3.0.2), Java(javac 1.8), Python2(2.7.3), PHP(7.4.7), C#(mcs5.4), ObjC(gcc 5.4), Pythen3(3.9), JavaScript Node(12.18.2), JavaScript V8(6.0.0), Sqlite(3.7.9), R(4.0.3), Go(1.14.4), Ruby(2.7.1), Swift(5.3), matlab(Octave 5.2), Pypy2(pypy2.7.13), Pypy3(pypy3.6.1), Rust(1.44), Scala(2.11.12), Kotlin(1.4.10), Groovy(3.0.6), TypeScript(4.1.2), Mysql(8.0)
本题可使用本地IDE编码,不能使用本地已有代码,无跳出限制,
编码后请点击”保存并调试“按钮进行代码提交。
题目描述
小明从糖果盒中随意抓一把糖果,每次小明会取出一半的糖果分给同学们。
当糖果不能平均分配时,小明可以选择从糖果盒中(假设盒中糖果足够)
取出一个糖果或放回一个糖果。
小明最少需要多少次(取出、放回和平均分配均记一次),
能将手中糖果分至只剩一颗
输入描述:
抓取的糖果数
这是一道关于华为在线开发者(OD)机试的题目,涉及糖果分配问题。小明需要将糖果分至只剩一颗,每次可以取出一半或调整一颗。问题求解最少操作次数,输入为初始糖果数,输出为操作次数。递归解法是关键,当糖果数为偶数时除以2,奇数时考虑加1或减1。示例给出15颗糖果需要5次操作达到目标。
订阅专栏 解锁全文
25万+

被折叠的 条评论
为什么被折叠?



