当前位置: 代码迷 >> 综合 >> 海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份, * 多了一个,这只猴子把多的一个扔入海中,拿走了一份
  详细解决方案

海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份, * 多了一个,这只猴子把多的一个扔入海中,拿走了一份

热度:3   发布时间:2023-10-27 09:45:36.0

package CompileProject;
/*
 * 38.海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,
 * 多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,
 * 又多了一个,它同样把多的一个扔入海中,
 *  拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
 */
public class P38_2 {

    public static void main(String[] args) {
        int number = 5;
        while(true) {
        if(isTheSmallestNumber(number)) {
        break;
        }
        number++;
        }
        System.out.println(number);
        }

        static boolean isTheSmallestNumber(int number) {
        int i = 0;
        while(i<5 && number > 0) {
        if((number-1)%5==0) {//每个猴子到手时的桃子为number
        int tmp = (number-1)/5 + 1;//temp=当前猴子拿走的桃子+扔掉的桃子
        number -= tmp;
        i ++;
        } else {//建一不能五猴平分则不满足最小桃子数
        return false;
        }
        }
        return true;
        }
        }
       

  相关解决方案