猴子選大王

2021-09-28 19:59:27 字數 843 閱讀 2375

7-28 猴子選大王 (20 分)

一群猴子要選新猴王。新猴王的選擇方法是:讓n只候選猴子圍成一圈,從某位置起順序編號為1~n號。從第1號開始報數,每輪從1報到3,凡報到3的猴子即退出圈子,接著又從緊鄰的下乙隻猴子開始同樣的報數。如此不斷迴圈,最後剩下的乙隻猴子就選為猴王。請問是原來第幾號猴子當選猴王?

輸入格式:

輸入在一行中給乙個正整數n(≤1000)。

輸出格式:

在一行中輸出當選猴王的編號。

輸入樣例:

11輸出樣例:

7方法一:

#include

using

namespace std;

intmain()

while

(n>1)

}}for(i=

0;i)return0;

}

1.此方法可以利用陣列方式,利用1與0來判斷是否已經取用。

2.n來計算還剩多少個沒有取走,最後剩乙個保留。

3.j的值在每次大迴圈完不還原,就可以繼續進入迴圈進行計數。

此處如果把j的判斷寫成j%3,而如果迴圈幾次後,j=0;a【i】=0;就會出現問題。故採用j==3的形式。

或者(約瑟夫迴圈)

#include

using

namespace std;

main()

;int n,i,n(

0),t

(0),

s(0)

; cin>>n;

while

(nt++;}

for(i=

0;i)}

猴子選大王

方法一 include int main 初始化猴子全沒出局 值為0 int count 0 排除的猴子數量 int key 0 剩下的資料索引,即最後要得到的是陣列中第幾隻猴子是大王 int i 0,index 0 i代表計數器1 7,index代表陣列下標 while count 14 當猴子數...

猴子選大王

問題描述 一群猴子,編號是1,2,3 m,這群猴子 m個 按 照1 m的順序圍坐一圈。從第1只開始數,每數到第n個,該猴子就 要離開此圈,這樣依次下來,直到圈中只剩下最後乙隻猴子,則該 猴子為大王。輸入m和n,輸出為大王的猴子是幾號。輸入描述 m個猴子和要出去的位數n。程式輸出 king是誰。inc...

猴子選大王

問題 檔名稱 專案5.cpp 作 者 秦緒龍 完成日期 2016年9月23日 版 本 號 v1.0 問題描述 一群猴子,編號是1,2,3 m,這群猴子 m個 按照1 m的順序圍坐一圈。從第1只開始數,每數到第n個,該猴子就要離開此圈,這樣依次下來,直到 圈中只剩下最後乙隻猴子,則該猴子為大王。輸入m...