习题--数组中的循环

来源:互联网 发布:linux 图形化压缩软件 编辑:程序博客网 时间:2024/05/29 16:24

有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),

凡是报到3的人退出圈子,问最后留下来的是原来第几号的那位。


import java.util.Arrays;import java.util.Scanner;public class Round {public static void main(String[] args) {// TODO Auto-generated method stub//用数组存储数据//int[] person={1,2,0,4,5,6,7};//{1,2,0,4,5,6,7}3//{1,2,0,4,5,0,7}6//{1,0,0,4,5,0,7}2//{1,0,0,4,5,0,0}7//{1,0,0,4,0,0,0}5//{0,0,0,4,0,0,0}1System.out.print("请输入人数");Scanner sc=new Scanner(System.in);int count=sc.nextInt();int[] person=new int[count];for(int i=0;i<count;i++) {person[i]=i+1;}int num=0;int length=count;for(int i=0;i<count;i++) {//如果num是3,if(person[i]!=0) {num++;}if(num==3) {//并且当前数字不是0,就把当前数字变成0if(person[i]!=0) {person[i]=0;num=0;length--;//System.out.println(Arrays.toString(person));} else {continue;}}if(i==count-1) {i=-1;}if(length==1) {for(int j:person) {if(j!=0) {System.out.println("最后剩下的是"+j);}}return;}}}}


原创粉丝点击