首页 > 代码库 > JAVA演算法---約瑟夫問題
JAVA演算法---約瑟夫問題
1 public class Josephus { 2 public static int[] arrayOfJosephus( int number, int per) {
3 4 int[] man = new int[number]; 5 6 for(int count = 1, i = 0, pos = -1; 7 count <= number; count++) { 8 do { 9 pos = (pos+1) % number; // 環狀處理 10 if(man[pos] == 0) 11 i++; 12 13 if(i == per) { // 報數為3了 14 i = 0; 15 break; 16 } 17 } while(true); 18 19 man[pos] = count; 20 } 21 22 return man; 23 } 24 25 public static void main(String[] args) { 26 int[] man = Josephus.arrayOfJosephus(41, 3); 27 int alive = 3; 28 29 System.out.println("約瑟夫排列:"); 30 for(int i = 0; i < 41; i++) 31 System.out.print(man[i] + " "); 32 33 34 System.out.println("\nL表示3個存活的人要放的位置:"); 35 for(int i = 0; i < 41; i++) { 36 if(man[i] > alive) 37 System.out.print("D"); 38 else 39 System.out.print("L"); 40 41 if((i+1) % 5 == 0) 42 System.out.print(" "); 43 } 44 45 System.out.println(); 46 } 47 }
JAVA演算法---約瑟夫問題
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。