java练习之15个猴子选大王详解

public static void main(String[] args) {
    //15个猴子围成一圈选大王,依次1-7循环报数,
    // 报到7的猴子被淘汰,后面的猴子再从1开始数,
    // 直到最后剩一只猴子称为大王,问:哪只猴子会成为大王?

    //生成数组内容{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}

    int[] monkey = new int[15];
    for (int i = 0; i < 15; i++) {
        monkey[i] = i + 1;
    }

    //记录猴子数量
    int count = 15;
    //记录数组索引下标
    int index = 0;
    //记录报数。报到7的淘汰。
    int num = 1;
     //因为不确定循环次数,所以使用while循环。
//当猴子数量为1时停止循环。所以循环条件为coun>1
//将淘汰的猴子对应的数组里的数值改为0
    while (count > 1) {
        if (monkey[index] != 0) {     //判断当前位置有没有被淘汰。
            if (num % 7 == 0) {        //判断报数是否为7
                monkey[index] = 0;     //将报到7的位置改为0
                count--;              //猴子数量减1
            }
            num++;                     //报数
        }
        index++;                      //数字索引加1,(下一只猴子)
        if (index == 15) {            //数组长度为15 ,超过15则从第一个开始
            index = 0;                //将索引改为0
        }

    }
//数组中不为0的是大王。
    for (int i = 0; i < 15; i++) {
        if (monkey[i] != 0) {
            System.out.println("第" + monkey[i] + "只猴子当大王");
        }
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值