成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

約瑟夫環(huán)java代碼數(shù)組 約瑟夫環(huán)c++代碼數(shù)組

用java在數(shù)組中實(shí)現(xiàn)約瑟夫環(huán)的問題, 要求寫明詳細(xì)注釋, 方法最好簡(jiǎn)單一點(diǎn), 初學(xué)者,

package ysfh;

創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計(jì)、做網(wǎng)站和成都服務(wù)器托管的網(wǎng)絡(luò)公司,有著豐富的建站經(jīng)驗(yàn)和案例。

/**

* 【約瑟夫環(huán)的問題】

* 有17個(gè)人(編號(hào)從1到16),按編號(hào)依次排列成一個(gè)圓環(huán)(編號(hào)16的接著編號(hào)為1 的人),從編號(hào)為1 的人開始報(bào)數(shù),數(shù)到3的人退出圓環(huán),如此循環(huán),最后留下的那個(gè)人的編號(hào)是什么?

* 1,2,3,4,5,6,7,8,,9,10,11,12,13,14,15,16

* 要求:請(qǐng)用面向?qū)ο蟮乃枷雭硖幚磉@個(gè)問題并在下面寫出具體的代碼(可以選擇你熟悉的語言,如java/C++/C#等)

* @author Administrator

*

*/

public class Ysfh {

public static void main(String[] args) {

m(3,16);

}

public static void m(int m,int n){

int c = 1;

int[] ns = ntoarray(n);

while(isone(ns) == false){//如果數(shù)組中有一個(gè)以上的數(shù)不為0

for (int i = 0; i ns.length; i++) {

if(ns[i] != 0 ){//等于0的都退出了 所以從所有不等于0的開始

if(c == m){//是第三個(gè)數(shù) 給他賦值0 并讓計(jì)數(shù)器c從1 開始

ns[i] = 0 ;

c = 1;

}else{//否則繼續(xù)計(jì)數(shù)器下一個(gè)

c++;

}

}

}

}

//循環(huán)輸出最后留下的數(shù)字

for (int i = 0; i ns.length; i++) {

if(ns[i] != 0){//除0以外的數(shù)字 0代表刪除

System.out.println(ns[i]);

}

}

}

/**

* 將 n 轉(zhuǎn)換為數(shù)字 n=3 {1,2,3}

* @param n

* @return

*/

public static int[] ntoarray(int n){

int[] ns = new int[n];

for (int i = 0; i ns.length; i++) {

ns[i] = i + 1;

}

return ns;

}

/**

* 判斷數(shù)組里是否只有一個(gè)數(shù)不為0

* @param ns

* @return

*/

public static boolean isone(int[] ns){

boolean isone = false;

for (int i = 0; i ns.length; i++) {

if(isone == false ns[i] != 0){

isone = true;

}else if(isone == true ns[i] != 0){

return false;

}

}

return isone;

}

}

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

package 約瑟夫環(huán);

import java.util.LinkedList;

import java.util.List;

/**

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

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

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

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

* @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; //第一次報(bào)多少的人出來

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

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();

}

}

跟這差不多的。

JAVA JDK環(huán)境中 關(guān)于約瑟夫環(huán) 怎樣將數(shù)組連接成環(huán) 留代碼 急求??!~

數(shù)組沒法連成環(huán),要想要環(huán)形,可以用鏈表,單項(xiàng)環(huán)形鏈表是個(gè)環(huán)。

分享標(biāo)題:約瑟夫環(huán)java代碼數(shù)組 約瑟夫環(huán)c++代碼數(shù)組
鏈接分享:http://jinyejixie.com/article28/ddicpjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、微信公眾號(hào)、網(wǎng)站建設(shè)、外貿(mào)建站、電子商務(wù)、域名注冊(cè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
图木舒克市| 达日县| 河源市| 新民市| 嘉禾县| 南阳市| 嘉祥县| 新乐市| 九龙城区| 苏尼特右旗| 灵石县| 体育| 台东市| 贵南县| 长汀县| 嘉义县| 竹溪县| 大埔区| 德化县| 岗巴县| 建宁县| 公安县| 遵义市| 曲松县| 城市| 成安县| 多伦县| 洪泽县| 长泰县| 临沭县| 洛宁县| 丰顺县| 新邵县| 凤台县| 太和县| 松原市| 静乐县| 班戈县| 文登市| 灵石县| 雷州市|