题目22:分糖果

小明面临一个分糖果的挑战,需要通过不断取出或放回糖果,使得糖果数最终剩下一颗。给定初始糖果数,例如15颗,经过一系列操作后,小明至少需要5次才能达到目标。这个过程涉及数学和算法策略,对于理解递归或除法有很好的启示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目22:分糖果

小明从糖果盒中随意抓一把糖果
每次小明会取出一半的糖果分给同学们
当糖果不能平均分配时
小明可以从糖果盒中(假设盒中糖果足够)取出一个或放回一个糖果
小明至少需要多少次(取出放回和平均分配均记一次)能将手中糖果分至只剩一颗

输入描述:
抓取糖果数(小于1000000):15
输出描述:
最少分至一颗糖果的次数:5

示例1:
输入
15
输出
5
备注
解释:(1) 15+1=16;
(2) 16/2=8;
(3) 8/2=4;
(4) 4/2=2;
(5) 2/2=1;

private static void tg() {
    Scanner scanner = new Scanner(System.in);
    int maxCount = scanner.nextInt();
    int count = 0;
    if (maxCount % 2 != 0) {
        maxCount++;
        count++;
    }
    while (maxCount != 1) {
        maxCount = maxCount / 2;
        count++;
    }
    System.out.println(count);
}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值