約瑟夫環(huán)簡單java代碼 約瑟夫環(huán)代碼詳解

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

package ysfh;

在措美等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供做網(wǎng)站、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作按需網(wǎng)站建設(shè),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),全網(wǎng)營銷推廣,成都外貿(mào)網(wǎng)站建設(shè)公司,措美網(wǎng)站建設(shè)費用合理。

/**

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

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

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

* 要求:請用面向?qū)ο蟮乃枷雭硖幚磉@個問題并在下面寫出具體的代碼(可以選擇你熟悉的語言,如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ù)組中有一個以上的數(shù)不為0

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

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

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

ns[i] = 0 ;

c = 1;

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

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ù)組里是否只有一個數(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;

}

}

急求用java解決約瑟夫環(huán)的編程(接圖片“顯示“出環(huán)者”次序并給出最終的赦免者”)

import?java.util.ArrayList;??

import?java.util.List;??

import?java.util.Scanner;??

public?class?demo?{??

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

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

System.out.print("請輸入總?cè)藬?shù):");??

int?totalNum?=?scanner.nextInt();??

System.out.print("請輸入報數(shù)的大小:");??

int?cycleNum?=?scanner.nextInt();??

System.out.print("請輸入第幾個報數(shù):");?

int?cur?=?scanner.nextInt();??

yuesefu(totalNum,?cycleNum?,cur);?

scanner.close();

}??

public?static?void?yuesefu(int?totalNum,?int?countNum,int?cur)?{??

//?初始化人數(shù)??

ListInteger?start?=?new?ArrayListInteger();??

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

start.add(i);??

}??

//從第K個開始計數(shù)??

int?k?=?cur-1;??

while?(start.size()?0)?{??

k?=?k?+?countNum;??

//第m人的索引位置??

k?=?k?%?(start.size())?-?1;??

//?判斷是否到隊尾??

if?(k??0)?{??

System.out.println(start.get(start.size()-1));??

start.remove(start.size()?-?1);??

k?=?0;??

}?else?{??

System.out.println(start.get(k));??

start.remove(k);??

}??

}??

}??

}

求java代碼是《約瑟夫環(huán)問題-猴子選大王》

無界面!

import java.util.LinkedList;

import java.util.List;

import java.util.Scanner;

public class LinkCircle {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner in = new Scanner(System.in);

int n, k, m, i, j, count, p, q;

int[] a = new int[100];

ListInteger array = new LinkedListInteger();

p = 0;

q = 0;

count = 0;

n = in.nextInt();

m = in.nextInt();

for (i = 0; i n; i++) {

array.add(i + 1);

System.out.printf(i != n - 1 ? "%d " : "%d\n", array.get(i));

}

int pos = -1;

int x = 0;

while(array.size() != 1)

{

//x = array.get(pos);

pos += m ;

if(pos = array.size())

{

pos = pos % array.size();

}

System.out.println("remove pos:" + (pos + 1) + ", value:" + array.get(pos));

array.remove(pos--);

System.out.print("Array : ");

for (i = 0; i array.size(); i++) {

System.out.printf(i != array.size() - 1 ? "%d " : "%d\n\n", array.get(i));

}

}

System.out.println("res:" + array.get(0));

}

}

本文題目:約瑟夫環(huán)簡單java代碼 約瑟夫環(huán)代碼詳解
當前路徑:http://muchs.cn/article48/ddcoehp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站定制開發(fā)、響應(yīng)式網(wǎng)站、標簽優(yōu)化電子商務(wù)、用戶體驗

廣告

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

搜索引擎優(yōu)化