JAVA循环题------15只狮子选狮王

1.需求

15只狮子子围成一圈选狮王,依次1-7循环报数,报到7的狮子被淘汰,后面的狮子再从1开始数,直到最后剩一只狮子称为狮王,问:哪只狮子会成为狮王?

2.分析

15只狮子选狮王,可以先定义一个狮王数组,元素为15个,初始值都为0,初始化一个狮子数量为15,定义一个初始报数值为0,然后循环遍历狮子数组,并循环报数到7,每当报到7时,该狮子数组成员变为1,为0的狮子成员减一,然后下次报数的时候跳过,当狮子数量为1时,说明仅剩一个狮子成员为0,此时该成员即为要选出的狮王。

3.代码

public static void main(String[] args) {
        int[] lion = new int[15];//定义一个狮子数组,数组元素有15个,初始值都为0
        int count = 0;//定义报数初始值为0
        int lionNum = lion.length;//初始化狮子数量为狮子数组的长度
        while (lionNum != 1) {//当狮子数量不为1时进入循环
            for (int i = 0; i < lion.length; i++) {
                if (lion[i] != 0) {//狮子数组元素不为0
                    continue;//结束当次循环
                }
                count++;//报数的数值加1
                if (count % 7 == 0) {//当报数为7时
                    lion[i] = 1;//当前数组元素变为1
                    lionNum--;//狮子数量减1
                }
            }
        }//当狮子数量减到1的时候跳出循环
        for (int i = 0; i < lion.length; i++) {//找出数组最后剩余的一个为0元素
            if (lion[i] == 0) {
                System.out.println("狮子王是" + (i + 1));//剩余的0元素即为狮王,其余都已经报数到7变为1
            }
        }
    }

4.运行结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值