【華為OD機(jī)試 2022】 約瑟夫問題(C++ Java JavaScript Python)
輸入一個(gè)由隨機(jī)數(shù)組成的數(shù)列(數(shù)列中每個(gè)數(shù)均是大于 0 的整數(shù),長度已知),和初始計(jì)數(shù)值 m。
從數(shù)列首位置開始計(jì)數(shù),計(jì)數(shù)到 m 后,將數(shù)列該位置數(shù)值替換計(jì)數(shù)值 m,
并將數(shù)列該位置數(shù)值出列,然后從下一位置從新開始計(jì)數(shù),直到數(shù)列所有數(shù)值出列為止。
如果計(jì)數(shù)到達(dá)數(shù)列尾段,則返回?cái)?shù)列首位置繼續(xù)計(jì)數(shù)。
請編程實(shí)現(xiàn)上述計(jì)數(shù)過程,同時(shí)輸出數(shù)值出列的順序。
比如:輸入的隨機(jī)數(shù)列為:3,1,2,4,初始計(jì)數(shù)值 m=7,從數(shù)列首位置開始計(jì)數(shù)(數(shù)值 3 所在位置)
第一輪計(jì)數(shù)出列數(shù)字為 2,計(jì)數(shù)值更新 m=2,出列后數(shù)列為 3,1,4,從數(shù)值 4 所在位置從新開始計(jì)數(shù)
第二輪計(jì)數(shù)出列數(shù)字為 3,計(jì)數(shù)值更新 m=3,出列后數(shù)列為 1,4,從數(shù)值 1 所在位置開始計(jì)數(shù)
第三輪計(jì)數(shù)出列數(shù)字為 1,計(jì)數(shù)值更新 m=1,出列后數(shù)列為 4,從數(shù)值 4 所在位置開始計(jì)數(shù)
最后一輪計(jì)數(shù)出列數(shù)字為 4,計(jì)數(shù)過程完成。輸出數(shù)值出列順序?yàn)椋?,3,1,4。
————————————————
版權(quán)聲明:本文為CSDN博主「算法大師」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/banxia_frontend/article/details/129307090
華為OD機(jī)試2022&2023(C++Java JS Py):
https://blog.csdn.net/banxia_frontend/category_12225173.html
華為OD機(jī)試2023最新題庫 更新中~(C++Java JS Py):
https://blog.csdn.net/banxia_frontend/category_12228764.html
華為OD機(jī)試題庫 復(fù)盤中~(C++Java JS Py):
https://blog.csdn.net/banxia_frontend/category_12257144.html
標(biāo)簽: