標籤:
import java.util.Scanner;class Person{ String name; int seqno; Person(String _name, int _seqno){ name = _name; seqno = _seqno; }}public class JosephCircle { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner = new Scanner(System.in); System.out.println("------請輸入總人數------"); int totalNum = scanner.nextInt(); System.out.println("----請輸入報數的大小----"); int outNum = scanner.nextInt(); String[] name = new String[totalNum]; System.out.println("----請輸入"+totalNum+"個人的名字,以斷行符號鍵結束----"); for(int i = 0; i < totalNum+1; i++){ String str = scanner.nextLine(); if(i == 0) continue; name[i-1] = str; } scanner.close(); JoseCiCircle(totalNum, outNum, name); } private static void JoseCiCircle(int totalNum, int outNum, String[] name) { Person[] ps = new Person[totalNum]; for(int i = 0; i < totalNum; i++){ Person p = new Person(name[i], i+1); ps[i] = p; } int pre = 0; int currentNum = totalNum; while(currentNum > 0){ pre = (pre + outNum - 1) % currentNum; System.out.println("----"+ps[pre].seqno + "號已出局----"); ps = adjust(ps, pre, currentNum); currentNum--; } } private static Person[] adjust(Person[] ps, int pre, int currentNum) { // TODO Auto-generated method stub for(int i = pre; i < currentNum - 1; i++){ ps[i] = ps[i+1]; } return ps; }}
這是用數組實現約瑟夫環,用到了對象數組Person[],Person類中內建了編號。
歡迎評論,互相交流!
轉載請註明出處!謝謝
約瑟夫環 java 對象數組實現