约瑟夫问题(java 版)

本文介绍了一个使用Vector进行特定操作的Java类实现。该类通过循环移除指定位置的元素直至达到预设数量,并记录了操作过程。同时,还展示了如何使用StringBuffer来构建字符串序列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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));  } }}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值