约瑟夫问题。

约瑟夫问题,

1、  用数组实现约瑟夫出圈问题。 n个人排成一圈,从第一个人开始报数,从1开始报,报到m的人出圈,剩下的人继续开始从1报数,直到所有的人都出圈为止。对于给定的n,m,编写程序求出所有人的出圈顺序。

import java.util.Scanner;

public class Yuesef {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc=new Scanner(System.in);
		System.out.println("输入人数");
		int n=sc.nextInt();
		System.out.println("输入m");
		int m=sc.nextInt();
		yuesf(n,m);
	}
	static void yuesf(int n,int m)
	{
		int []a=new int[n];
		int p=1;
		int t=0;
		while(true)
		{
			for(int x=0;x<a.length;x++)
			{
				if(a[x]==1)continue;
				if(p==m)
				{
					a[x]=1;
					p=0;
					t++;
					System.out.println(x);
				}
				p++;
			}
			
			if(t==a.length)
				break;
		}
		
		
	}

}

  

原文地址:https://www.cnblogs.com/chslch/p/4869678.html