天天看點

約瑟夫環(java 遞歸)

import java.util.Scanner;

public class llq1{
	public static void main(String[] args) {
		Scanner s=new Scanner(System.in);
		int n=s.nextInt();
		int m=s.nextInt();
		for(int i=1;i<=n;i++) {
			System.out.println("第"+i+"個人出圈:"+(f(n,m,i)+1));
		}
	}
	static int f(int n,int m,int i) {
		if(i==1)return (n+m-1)%n;
		else
			return (f(n-1,m,i-1)+m)%n;
	}
}
           

輸入 :

10 3

結果:

第1個人出圈:3

第2個人出圈:6

第3個人出圈:9

第4個人出圈:2

第5個人出圈:7

第6個人出圈:1

第7個人出圈:8

第8個人出圈:5

第9個人出圈:10

第10個人出圈:4