Java经典面试题(N人循环报M个数出列)实现
生活随笔
收集整理的這篇文章主要介紹了
Java经典面试题(N人循环报M个数出列)实现
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
面試題:
?設(shè)有N個(gè)人依次圍成一圈,從第1個(gè)人開始報(bào)數(shù),第M個(gè)人出列,然后從出列的下一個(gè)人開始報(bào)數(shù),數(shù)到第M個(gè)人又出列,...,如此反復(fù)到所有的人全部出列為止,設(shè)N個(gè)人的編號(hào)分別為1,2,...,N,打印出出列的順序,要求用java實(shí)現(xiàn)。
參考代碼:
package com;/** 編程題:設(shè)有N個(gè)人依次圍成一圈,從第1個(gè)人開始報(bào)數(shù),第M個(gè)人出列,然后從出列的下一個(gè)人開始報(bào)數(shù),數(shù)到第M個(gè)人又出列,...,* 如此反復(fù)到所有的人全部出列為止,設(shè)N個(gè)人的編號(hào)分別為1,2,...,N,打印出出列的順序,要求用java實(shí)現(xiàn)。*/ public class demo {public static void main(String args[]){int n=99;//人數(shù),1...99編號(hào)int m=9;//循環(huán)次數(shù)int oCount=0;//統(tǒng)計(jì)總出列人數(shù)int index=1;//指示當(dāng)前報(bào)數(shù)的編號(hào)int iCount=0;//統(tǒng)計(jì)每一輪循環(huán)報(bào)數(shù)的個(gè)數(shù)int[] icol=new int[99];for(int i=0;i<99;i++) icol[i]=0;//初始化為未出列 long start=System.currentTimeMillis(); while (true){if(oCount==n-1) { //剩下最后一個(gè),直接出列System.out.println("最后,第"+String.valueOf(index)+"個(gè)出列!"); break;//全部出列,結(jié)束循環(huán)}if(icol[index-1]==0) iCount++;//未出列,報(bào)數(shù)if(iCount == m ) { //本輪報(bào)數(shù)循環(huán)結(jié)束 System.out.println("第"+String.valueOf(index)+"個(gè)出列!");icol[index-1]=1;//標(biāo)記為已出列oCount++;//已處理人數(shù)加1iCount =0;//從頭開始數(shù)每輪循環(huán)報(bào)數(shù)}index++;//下一個(gè)if(index==n) index=1;//返回隊(duì)頭} long end =System.currentTimeMillis();System.out.println("總出列個(gè)數(shù):"+String.valueOf(oCount+1));System.out.println("總時(shí)長(zhǎng):"+String.valueOf(end-start));} } 執(zhí)行結(jié)果: 第9個(gè)出列! 第18個(gè)出列! 第27個(gè)出列! 第36個(gè)出列! 第45個(gè)出列! 第54個(gè)出列! 第63個(gè)出列! 第72個(gè)出列! 第81個(gè)出列! 第90個(gè)出列! 第1個(gè)出列! 第11個(gè)出列! 第21個(gè)出列! 第31個(gè)出列! 第41個(gè)出列! 第51個(gè)出列! 第61個(gè)出列! 第71個(gè)出列! 第82個(gè)出列! 第92個(gè)出列! 第4個(gè)出列! 第15個(gè)出列! 第26個(gè)出列! 第38個(gè)出列! 第49個(gè)出列! 第60個(gè)出列! 第73個(gè)出列! 第84個(gè)出列! 第95個(gè)出列! 第8個(gè)出列! 第22個(gè)出列! 第34個(gè)出列! 第47個(gè)出列! 第59個(gè)出列! 第74個(gè)出列! 第86個(gè)出列! 第98個(gè)出列! 第14個(gè)出列! 第29個(gè)出列! 第43個(gè)出列! 第57個(gè)出列! 第70個(gè)出列! 第87個(gè)出列! 第3個(gè)出列! 第19個(gè)出列! 第35個(gè)出列! 第52個(gè)出列! 第67個(gè)出列! 第83個(gè)出列! 第2個(gè)出列! 第20個(gè)出列! 第39個(gè)出列! 第56個(gè)出列! 第76個(gè)出列! 第93個(gè)出列! 第13個(gè)出列! 第33個(gè)出列! 第55個(gè)出列! 第77個(gè)出列! 第96個(gè)出列! 第23個(gè)出列! 第44個(gè)出列! 第66個(gè)出列! 第89個(gè)出列! 第16個(gè)出列! 第42個(gè)出列! 第68個(gè)出列! 第94個(gè)出列! 第25個(gè)出列! 第53個(gè)出列! 第80個(gè)出列! 第12個(gè)出列! 第48個(gè)出列! 第79個(gè)出列! 第17個(gè)出列! 第58個(gè)出列! 第91個(gè)出列! 第32個(gè)出列! 第75個(gè)出列! 第24個(gè)出列! 第65個(gè)出列! 第10個(gè)出列! 第69個(gè)出列! 第30個(gè)出列! 第88個(gè)出列! 第50個(gè)出列! 第28個(gè)出列! 第5個(gè)出列! 第85個(gè)出列! 第78個(gè)出列! 第97個(gè)出列! 第7個(gè)出列! 第46個(gè)出列! 第37個(gè)出列! 第40個(gè)出列! 第6個(gè)出列! 第62個(gè)出列! 第64個(gè)出列! 最后,第65個(gè)出列! 總出列個(gè)數(shù):99 總時(shí)長(zhǎng):7總結(jié)
以上是生活随笔為你收集整理的Java经典面试题(N人循环报M个数出列)实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数据挖掘笔记一】引论
- 下一篇: java美元兑换,(Java实现) 美元