1. 程式人生 > >Java 寫有n個人圍成一圈,順序排號,從第一個人開始報數(從1~3報數), 凡報到3的人退出圈子,問最後留下的人原來排在第幾號。

Java 寫有n個人圍成一圈,順序排號,從第一個人開始報數(從1~3報數), 凡報到3的人退出圈子,問最後留下的人原來排在第幾號。

package tests;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * 題目描述,
 *Java 寫有n個人圍成一圈,順序排號,從第一個人開始報數(從1~3報數),
 *凡報到3的人退出圈子,問最後留下的人原來排在第幾號。
 *
 */
public class Countnumber {
	public static void main(String[] args){
		System.out.println("輸入圈內報數的人數");
		Scanner ss=new Scanner(System.in);
		int n=ss.nextInt();
		fun1(n);
//		fun2(n);
	}
	
	//第一種方式
	public static void fun1(int n){
		int countnumber=0;//報數的數1-n
		int index=0;//索引位置
		int number=n;//報數人數
		boolean [] arr=new boolean[n];
		for(int i=0;i1){
			if(arr[index]==true){
			countnumber++;
			if(countnumber==3){
				arr[index]=false;
				number--;
				countnumber=0;
			}
			}
			index++;
			if(index==n){
				index=0;
			}
		}
		
		for(int i=0;i list=new ArrayList();
		int countnumber=1;
		for(int i=1;i<=n;i++){
			list.add(i);
		}
		
		//進行列表遍歷
		for(int i=0;i