class A { // private int k = 0; private String str = ""; int[] nums = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; final private int interal = 9; final private int number = 30; final private int resultNum = 15; public A() { } public A(String str) { this.str = str; } void doit() { Vector vv = new Vector(); for (int i = 0; i < number; i++) { vv.addElement(new Integer(i + 1)); } while (vv.size() != resultNum) { removeNum(vv); } System.out.println(vv); StringBuffer sb = new StringBuffer(); for (int i = 0; i < number; i++) { if (!vv.contains(new Integer(i + 1))) { sb.append("X"); } else { sb.append(i + 1); } sb.append(" "); } System.out.println(sb.toString()); } private void removeNum(Vector left) { Vector newArr = new Vector(); int rem = 0; for (int i = 0, k = 1; k <= interal; i++, k++) { if (i == left.size()) { i = 0; } if (k == interal) { rem = i; break; } } left.remove(rem); for (int i = 0; i < rem; i++) { newArr.addElement(left.elementAt(0)); left.remove(0); } for (int i = 0; i < newArr.size(); i++) { left.addElement(newArr.elementAt(i)); } }}
约瑟夫问题(java 版)
最新推荐文章于 2022-08-29 23:24:53 发布