约瑟夫问题,
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; } } }