91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用批處理解約瑟夫環應用題

發布時間:2021-10-08 11:05:49 來源:億速云 閱讀:133 作者:小新 欄目:開發技術

小編給大家分享一下如何使用批處理解約瑟夫環應用題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

題目:
  有二十九個女生(分別用1-29號來稱呼)圍成一圈玩報數游戲,規則是這樣的:從1開始數數,當數到3的這個人就退出游戲,而她后面的人接著從1數。。。如此一直到最后剩下一個人,現在知道最初是從13號女生開始的游戲,問最后剩下的會是第幾號女生?
要求:
  1 用批處理解答
  2 代碼簡潔高效
  3 代碼通用且不生成臨時文件
加分原則:
  以思路為重(如思路獨特,請簡要說明)
  完全符合要求的加10分

  已有兩套解決方案,見3樓more和6樓ieutk版主的代碼,但個人認為這兩套方案均不完美(見本人的跟貼評述),期
待完美方案的出現,大家加油了!!!

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

代碼如下:


@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:

代碼如下:


@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:

代碼如下:

@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:#=%號&pause>nul

以上是“如何使用批處理解約瑟夫環應用題”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乐至县| 邛崃市| 迁西县| 汉寿县| 高清| 呈贡县| 云林县| 碌曲县| 民乐县| 佛山市| 兴安盟| 南郑县| 抚远县| 筠连县| 朝阳市| 石阡县| 无极县| 鄂托克前旗| 墨脱县| 东乌珠穆沁旗| 互助| 新巴尔虎左旗| 巴楚县| 长治市| 平乡县| 手机| 吴忠市| 榕江县| 贵阳市| 阜阳市| 辽阳市| 镇坪县| 湘潭县| 凭祥市| 醴陵市| 遵化市| 枣庄市| 浑源县| 丹江口市| 东乌珠穆沁旗| 峨边|