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
本文通过一个Java实现的约瑟夫环问题,详细解析了递归算法在解决复杂问题中的应用。代码中使用了Scanner类来获取用户输入,然后通过递归函数计算并输出每个位置被淘汰的人。这是一个经典的计算机科学问题,展示了递归和数据结构的巧妙结合。
1552





