真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

約瑟夫環(huán)java代碼華為 約瑟夫環(huán)c++代碼相關(guān)程序的解釋

怎么用java數(shù)組實現(xiàn)約瑟夫環(huán)

用java數(shù)組實現(xiàn)約瑟夫環(huán)

十年專注成都網(wǎng)站制作,成都定制網(wǎng)頁設(shè)計,個人網(wǎng)站制作服務(wù),為大家分享網(wǎng)站制作知識、方案,網(wǎng)站設(shè)計流程、步驟,成功服務(wù)上千家企業(yè)。為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計及定制高端網(wǎng)站建設(shè)服務(wù),專注于成都定制網(wǎng)頁設(shè)計,高端網(wǎng)頁制作,對花箱等多個行業(yè),擁有豐富的網(wǎng)站推廣經(jīng)驗。

package?Josephround;

public?class?Joseround?{

int?sit;

int?flagjo=0;

Joseround(){};

Joseround(int?x){

sit=x;

}

void?setflag(int?x){

flagjo=x;

}

}

package?Josephround;

public?class?Inijose?{

Joseround?jo[];

static?int?length=0;

Inijose(){};

Inijose(int?x){

jo=new?Joseround[x];

for(int?i=0;ix;i++){

jo[i]=new?Joseround(i+1);//創(chuàng)建對象數(shù)組

length++;

}

}

void?delete(int?n){

for(int?i=n;ilength-1;i++){

jo[i]=jo[i+1];

}

length--;

}

}

package?Josephround;

import?java.util.Scanner;

public?class?Text?{

public?static?void?main(String[]?args)?{

int?m,n;

System.out.println("input?m");

Scanner?m1=new?Scanner(System.in);

m=m1.nextInt();

System.out.println("input?n");

Scanner?n1=new?Scanner(System.in);

n=n1.nextInt();

int?temp=0;

int?x=0;

Inijose?joseph=new?Inijose(n);

while(joseph.length!=0){

for(int?i=1;i=m;i++){

joseph.jo[x].setflag(i);

if(joseph.jo[x].flagjo==m){

System.out.println(joseph.jo[x].sit);

joseph.delete(x);

x--;

}

if(xjoseph.length-1)?x++;

else?x=0;

}

}

}

}

急!急!急!Java怎么用遞歸實現(xiàn)約瑟夫環(huán)?求試驗成功的、初級的代碼

public?class?TestJosephus?{

public?static?void?main(String[]?args)?{

//留幾個人

int?alive?=?2;

//總?cè)藬?shù)

int?total?=?41;

//自殺者報數(shù)

int?killMan?=?3;

Josephus(alive,?total,?killMan);

}

/**

?*?@param?alive?存活的人初始位置序號//留幾個人

?*?@param?total?總?cè)藬?shù)

?*?@param?killMan?自殺者報數(shù)

?*/

public?static?void?Josephus(int?alive,?int?total,?int?killMan)?{

int?[]man?=?new?int[total];

int?count?=?1;

int?i?=?0;

int?pos?=?-1;

while?(count?=?total)?{

do?{

pos?=?(pos+1)%total;

if?(man[pos]?==?0)?{

i++;

}

if?(i?==?killMan)?{

i?=?0;

break;

}

}?while?(true);

man[pos]?=?count;

System.out.print("第?"?+?(pos+1)?+?"?個人自殺!約瑟夫環(huán)編號為:"?+?man[pos]);

if?(count?%?2?!=?0)?{

System.out.print("?-?");

}else?{

System.out.println("?-=?");

}

count++;

}

System.out.println();

System.out.println("這?"?+?alive?+"?個需要存活的人初始位置應(yīng)排在以下序號:");

alive?=?total?-?alive;

for?(i?=?0;?i??total;?i++)?{

if?(man[i]??alive)?{

System.out.println("初始編號:"?+?(i+1)?+?",約瑟夫環(huán)編號:"?+?man[i]);

}

}

System.out.println();

}

}

求解約瑟夫環(huán)問題(Java)

package 約瑟夫環(huán);

import java.util.LinkedList;

import java.util.List;

/**

* 約瑟夫環(huán)問題的一種描述是:編號為1.2.3…….n的n個人按順時針方向圍坐一圈 ,每人手持一個密碼(正整數(shù)),

* 開始任意選一個整數(shù)作為報數(shù)上限值,從第一個人開始順時針自1開始順序報數(shù),報到m時停止報數(shù)。報m的人出列,

* 將他的密碼作為新的m值,從他順時針下一個人開始重新從1開始報數(shù),

* 如此下去直到所有的人全部都出列為止。試設(shè)計程序?qū)崿F(xiàn),按照出列的順序打印各人的編號。

* @author Administrator

*

*/

public class Question2 {

class person {

int password;

int number;

int state = 1;

public person(int password, int number) {

this.password = password;

this.number = number;

}

public person(int number){

this.number = number;

}

}

public int ListLength(Listperson list) {

int count = 0;

if (list != null) {

for (person p : list) {

if (p.state != 0) {

count++;

}

}

}

return count;

}

public void cacle() {

// 初始化數(shù)據(jù)

Listperson list = new LinkedListperson();

list.add(new person(3,1));

list.add(new person(1,2));

list.add(new person(7,3));

list.add(new person(2,4));

list.add(new person(4,5));

list.add(new person(8,6));

list.add(new person(4,7));

int position = -1;//初始位置

int m = 20; //第一次報多少的人出來

int count = 0;//已經(jīng)報了多少人

while (ListLength(list) != 0) {

position = (position + 1) % list.size();// 位置定位

if (((person) list.get(position)).state != 0) {

count++;

}

if (count == m) {

person p = list.get(position);

System.out.print(p.number+" ");

p.state = 0;

m = p.password;

list.set(position, p);

count = 0;

}

}

}

public static void main(String[] args) {

Question2 q= new Question2();

q.cacle();

}

}

跟這差不多的。

約瑟夫環(huán)問題的代碼

首先,這個代碼輸出的是,約瑟夫環(huán)到達的最后位置。輸出結(jié)果是15。

//把iostream這個文件中的內(nèi)容復(fù)制到這個地方。

#includeiostream

using namespace std;

int main()

{

//定義一個常量的整形100,表示人的個數(shù)。

const int n=100;

//定義約瑟夫環(huán)的參數(shù)。

int m=30;

//定義一個數(shù)組,用于計算約瑟夫環(huán)的位置。

int a[n];

//給數(shù)組賦值,讓數(shù)組的每個值就是這個元素的編號。

for(int j=0;jn;j++)

a[j]=j+1;

//定義一個標志k,當K等于N的時候,表示到達約瑟夫環(huán)的最后位置。

int k=1;

int i=-1;

while(1)

{

for(int j=0;jm;)

{

//不停的取數(shù)組的下一個元素。

i=(i+1)%n;

//如果這個元素沒有被標記為0,說明這個位置還沒有被排除,j加1,進入下一個循環(huán)

if(a[i]!=0)

j++;

}

//如果標志K等于n,說明約瑟夫環(huán)的循環(huán)到達最后一個位置,跳出While死循環(huán)。

if(k==n)

break;

//否則,把這個位置的元素設(shè)為零,標志它被排除。

a[i]=0;

//標志+1。

k++;

}

//輸出約瑟夫環(huán)到達的最后一個位置。

couta[i]endl;

return 0;

}


當前文章:約瑟夫環(huán)java代碼華為 約瑟夫環(huán)c++代碼相關(guān)程序的解釋
文章地址:http://weahome.cn/article/ddjjsjp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部