當前位置:編程學習大全網 - 編程軟體 - 關於用java數組求約瑟夫的問題。。。。。

關於用java數組求約瑟夫的問題。。。。。

這是用集合類寫的。我建議妳多使用集合類而不是數組。從整個Java api來看,對集合類的支持要好於數組。

約瑟夫斯(1,9,5)這種構造方法就是從1的人開始數,壹***9個人,數到5的人就滾出隊列。

我用了叠代器,不用它也可以。

List使用LinkedLisk,ArrayList或者Vector也可以。

我沒有仔細考慮過。有問題我會溝通的。

導入Java . util . iterator;

導入Java . util . linked list;

公共類Main {

公共靜態void main(String[] args) {

約瑟夫斯測試=新約瑟夫斯(1,9,5);

for(整數I:測試){

system . out . println(I);

}

}

}

約瑟夫斯類實現Iterable & lt整數& gt{

私人鏈接列表& lt整數& gt堆棧;

private int優先;//從哪個人那裏?

私有int鍵;//數幾個

私有int容量;//幾個人* * *

公共約瑟夫斯(整數優先,整數容量,整數關鍵字){

this.first = first

容量=容量;

this.key = key

this.stack = new LinkedList & lt整數& gt();

for(int I = 1;我& lt= this.capacityi++) {

this . stack . add(I);

}

for(int I = 0;我& ltthis . first-1;i++) {

this . stack . add(this . stack . remove());

}

}

公共叠代器iterator() {

返回新的Itr();

}

類Itr實現叠代器& lt整數& gt{

public boolean hasNext() {

回歸!stack . isempty();

}

公共整數next() {

for(int I = 0;我& ltkey-1;i++) {

stack . add(stack . remove());

}

返回stack . remove();

}

公共void remove() {

拋出新的UnsupportedOperationException("尚不支持。");

}

}

}

  • 上一篇:「技術」支付寶小程序開發筆記
  • 下一篇:新能力智能科技(無錫)有限公司怎麽樣?
  • copyright 2024編程學習大全網