package ysfh;
在措美等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供做網(wǎng)站、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站建設(shè),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),全網(wǎng)營(yíng)銷推廣,成都外貿(mào)網(wǎng)站建設(shè)公司,措美網(wǎng)站建設(shè)費(fèi)用合理。
/**
* 【約瑟夫環(huán)的問(wè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ū)ο蟮乃枷雭?lái)處理這個(gè)問(wèn)題并在下面寫出具體的代碼(可以選擇你熟悉的語(yǔ)言,如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;
}
}
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("請(qǐng)輸入總?cè)藬?shù):");??
int?totalNum?=?scanner.nextInt();??
System.out.print("請(qǐng)輸入報(bào)數(shù)的大小:");??
int?cycleNum?=?scanner.nextInt();??
System.out.print("請(qǐng)輸入第幾個(gè)報(bào)數(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個(gè)開始計(jì)數(shù)??
int?k?=?cur-1;??
while?(start.size()?0)?{??
k?=?k?+?countNum;??
//第m人的索引位置??
k?=?k?%?(start.size())?-?1;??
//?判斷是否到隊(duì)尾??
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);??
}??
}??
}??
}
無(wú)界面!
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)簡(jiǎn)單java代碼 約瑟夫環(huán)代碼詳解
當(dāng)前路徑:http://vcdvsql.cn/article48/ddcoehp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、定制開發(fā)、響應(yīng)式網(wǎng)站、標(biāo)簽優(yōu)化、電子商務(wù)、用戶體驗(yàn)
聲明:本網(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)