问题描述:猴子分桃:海 滩上有一堆桃子,五只猴子来分。
第一只猴子把这堆桃子凭据分为五份,多了一个,
这只猴子把多的一个扔入海中,拿走了一份。
第二只猴子把剩下的桃子又平均分成五份,又多了一个,
它同样把多的一个扔入海中,拿走了一份,
第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
本人大一小白一枚 想了几个小时 拼出来的代码大佬们看看有没有逻辑方面的问题请指教了或者说说你们的代码意见:
public static void main(String[] args) {
// TODO Auto-generated method stub
int i=6,j,k=1,a; //i为6因为要分五份不可能比6小
while(i++!=0) { //这里while设置循环
k=0;
j=i;
for(a=1;a<=5;a++) { //用for来控制if进行五次循环因为是五只猴子最多能分五次
if((j-1)%5==0&&k!=5) { //j等于总桃子数,减1代表丢掉的一个桃子,取余五代表五份,k如果不等于五等于这些桃子分不了五份
k++;
j=(j-1)-(j-1)/5; //第一份减去第一个猴子拿走的一份,得到第二份,后面的以此内推
}
}
if(k==5) { //如果五只猴子都分到了桃子结束出来
break;
}
}
System.out.println("总共有"+i+"颗桃");
}