【华为OD-E卷 - 分糖果 100分(python、java、c++、js、c)】
题目
小明从糖果盒中随意抓一把糖果,每次小明会取出一半的糖果分给同学们。
当糖果不能平均分配时,小明可以选择从糖果盒中(假设盒中糖果足够)取出一个糖果或放回一个糖果。
小明最少需要多少次(取出、放回和平均分配均记一次),能将手中糖果分至只剩一颗
输入描述
- 抓取的糖果数(<10000000000):15
输出描述
- 最少分至一颗糖果的次数:5
用例
用例一:
输入:
15
输出:
5
python解法
- 解题思路:
- 解题思路
题目要求找到从给定的整数 n 转换到 1 的最小步数。在每一步中,可以进行以下操作:
如果当前数 n 是偶数,则可以将它除以 2。
如果当前数 n 是奇数,则可以将它加 1 或减 1。
由于题目要求最小步数,因此
订阅专栏 解锁全文

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



