分糖果

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

输入15,输出5,过程:(1)15+1=16(2)16/2=8(3)8/2=4(4)4/2=2(5)2/2=1

思路:(1)先判断是否还剩一个(2)判断是否能被2整除(3)能整除话就再次整除直到1(4)不能被2整除的话先减1再除以2(5)第四步的数据是否能被2整除(6)不能就-1,次数加2(7)能的话就+1,次数+2

代码

`
public class fenTangGuo(){

public stacic void main(String arg[s]){

Scanner sc =new Scanner(System.in);
int num=sc.nextInt();
int index=0;
while(num!=1){
if(num%2!=0){
long temp=(num-1)/2;
if(temp%2=0){
num=(num-1)/2;
index +=2;
else{
num=(num+1)/2
index+=2
}
}
}else{
num=num/2;
index++
}
}
}

}

`

posted @ 2023-11-01 14:38  约拿小叶  阅读(37)  评论(0编辑  收藏  举报