A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 18263368378 中级黑马   /  2016-4-27 22:23  /  468 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package com.itheima;

/*
* 10、有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
*/
import java.util.Scanner;
public class Test10{
        public static void main(String[] args){
                System.out.println("请输入一个整数:");
                Scanner sc = new Scanner(System.in);
                int n = sc.nextInt();
                sc.close();
                //定义数组变量标识某人是否还在圈内
                boolean[] isIn = new boolean[n];
                for(int i=0;i<isIn.length;i++)
                  isIn[i] = true;
                //定义圈内人数、报数、索引
                int inCount = n;
                int countNum = 0;
                int index = 0;
                while(inCount>1){
                        if(isIn[index]){
                                countNum++;
                                if(countNum==14){
                                        countNum = 0;
                                        isIn[index] = false;
                                        inCount--;
                                }
                        }
                        index++;
                        if(index==n)
                          index = 0;
                }
                for(int i=0;i<n;i++)
                  if(isIn[i])
                    System.out.println("留下的是:"+(i+1));
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马