猴子分桃

 题目  //  一个岛上 飘来五个人  
        // A B C D E   岛上还有一只猴
        //  还有一棵桃树    N个桃子
// 于是5个人决定把这个桃子分一分   平均分
// 当天晚上 A起来了  悄悄起来 给桃子 分成了6份 自己拿走一份 多了一个给猴子
// 之后 B起来了 悄悄的起来了  给剩下的桃子分成6份 自己拿走一份 多一个给猴子
//............
// 求 岛上有多少个桃子
// 7771


public class fentao {
public static void main(String[] args) {
int sum2; //用来进行逻辑运算的桃子总数
int sum1 = 6; //实际的桃子总数
int count; //分桃子次数(控制内层循环)
int index; //分桃子次数(符合分桃方案的次数)
boolean flag = true; //控制外层循环


while(flag){
index = 0; //初始化分桃子的次数为0
count = 0; //初始化为第一个猴子开始分桃子
sum2 = sum1; //初始化逻辑运算的桃子总数为实际的桃子总数,因为此变量用于计算,所以值会改变,为了不影响实际的桃子总数,所以用此变量代替!
while(count < 5){ //猴子开是分桃子了!
if(sum2%6 == 1){ //如果桃子总数除以6余1说明此桃子总数符合分桃方案(sum2%6 == 1)
sum2 -= 1; //因为桃子被猴子扔掉一个,所以要减1
sum2 -= sum2/6; //又因为桃子被平均分为了6份并且被猴子拿走了1份,所以要减1/6
index++; //如果符合分桃方案就将计数器加1
}
if(index == 5){ //如果计数器等于5,也就是桃子的总数在符合分桃方案(sum2%6 == 1)的前提下分可5次的话!说明此桃子总数是符合条件的最小整数!
System.out.println("最少有 " + sum1 + " 个桃子!");
flag = false;//关闭外层循环;
break; //跳出内层循环;
}
count++; //5个猴子分桃子嘛!第一个分完了,当然该轮到第二个了!!所以要递增!
}
sum1 += 5; //桃子的总数只有每次递增5才可以符合分桃方案(sum2%6 == 1)!
}
}
}

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值