理解約瑟夫環(huán)應(yīng)用題代碼

          時(shí)間:2021-06-12 09:18:55 試題 我要投稿

          關(guān)于理解約瑟夫環(huán)應(yīng)用題代碼

            題目:

            有二十九個(gè)女生(分別用1-29號(hào)來稱呼)圍成一圈玩報(bào)數(shù)游戲,規(guī)則是這樣的:從1開始數(shù)數(shù),當(dāng)數(shù)到3的這個(gè)人就退出游戲,而她后面的人接著從1數(shù)。。。如此一直到最后剩下一個(gè)人,現(xiàn)在知道最初是從13號(hào)女生開始的游戲,問最后剩下的`會(huì)是第幾號(hào)女生?

            要求:

            1用批處理解答

            2代碼簡潔高效

            3代碼通用且不生成臨時(shí)文件

            加分原則:

            以思路為重(如思路獨(dú)特,請(qǐng)簡要說明)

            完全符合要求的加10分

            已有兩套解決方案,見3樓more和6樓ieutk版主的代碼,但個(gè)人認(rèn)為這兩套方案均不完美(見本人的跟貼評(píng)述),期

            待完美方案的出現(xiàn),大家加油了!!!

            注:約瑟夫問題

            約瑟夫問題是個(gè)有名的問題:N個(gè)人圍成一圈,從第一個(gè)開始報(bào)數(shù),第M個(gè)將被殺掉,最后剩下一個(gè),其余人都將被殺掉。例如N=6,M=5,被殺掉的人的序號(hào)為5,4,6,2,3。最后剩下1號(hào)。

            more:

            復(fù)制代碼 代碼如下:

            @echo off

            set "str=13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 1 2 3 4 5 6 7 8 9 10 11 12"

            :again

            for /f "tokens=1,2,4*" %%a in ("%str%") do (

            if not "%%c"=="" (set "str=%%c %%d %%a %%b"&goto :again) else (echo %%b&pause&exit)

            )

            ieutk:

            復(fù)制代碼 代碼如下:

            @echo off

            setlocal enabledelayedexpansion

            for /l %%a in (12 -1 1) do set "str= %%a !str!"

            for /l %%a in (29 -1 13) do set "str= %%a !str!"

            :main

            set "ie=0"

            for %%a in (%str%) do set /a ie+=1

            if %ie% neq 1 (

            for %%a in (%str%) do (

            set /a num+=1

            if !num! equ 3 (

            set "num=0"

            set "str=!str: %%a =!

            )

            )

            goto main

            )

            echo %str%

            pause

            batman:

            復(fù)制代碼 代碼如下:

            @echo off&setlocal enabledelayedexpansion

            for /l %%a in (13,1,29) do set "str=!str! #%%a#"

            for /l %%a in (1,1,12) do set "str=!str! #%%a#"

            :lp

            for %%a in (!str!) do (

            set /a n+=1

            if !n! equ 3 set "str=!str: %%a=!"&set /a n=0

            )

            for /f "tokens=2" %%a in ("%str%") do if "%%a" neq "" goto lp

            echo 最后剩下的是%str:#=%號(hào)&pause>nul

          【理解約瑟夫環(huán)應(yīng)用題代碼】相關(guān)文章:

          廿二軍規(guī)與約瑟夫海勒12-06

          《杜環(huán)小傳》閱讀理解及參考答案03-21

          看約瑟夫·愛潑斯坦《嫉妒》有感07-19

          黑色幽默與約瑟夫海勒(1)12-06

          最新的約瑟夫·布羅茨基經(jīng)典句子02-21

          中班語言:約瑟夫有件舊外套08-23

          文言文閱讀理解之環(huán)翠亭記05-10

          曲阜師范大學(xué)代碼及專業(yè)代碼08-05

          js代碼改寫成jq代碼的方法03-14

          国产精品好爽好紧好大_亚洲男人综合久久综合_欧美福利电影a在线播放www_国产精品99久久精品无码

                  亚洲午夜福利片在线 | 亚洲中文字字字幕犯侵 | 日韩精品动漫在线观看一区 | 日本大片在线看黄a∨免费 亚洲美女天堂电影 | 中文字幕日韩精品欧美一区 | 最新精品国产免费 |