JAVA使用陣列實現約瑟夫環的問題
阿新 • • 發佈:2020-12-28
技術標籤:woj資料結構與演算法JAVA後端開發演算法java
- 使用陣列實現約瑟夫環的問題
package woj; import java.util.Scanner; public class woj_71 { public static void main(String[] args) { Scanner cin = new Scanner(System.in); while(cin.hasNext()) { int N = cin.nextInt(); int m = cin.nextInt(); int[] nums = new int[N+1]; for(int i=1;i<=N;i++) { nums[i]=i; } int count=0; int tem=1; int i=1; while(count<N) { if(tem==m&&nums[i]!=0) { tem=1; count++; if(count==N) { System.out.print(nums[i]); }else { System.out.print(nums[i]+" "); } nums[i]=0; i=divide_i(i, N); }else if(nums[i]==0) { i=divide_i(i, N); }else { i=divide_i(i, N); tem++; } } } cin.close(); } public static int divide_i(int i,int N) { if((i+1)%N==0) { return i+1; }else { return (i+1)%N; } } }
執行結果: