PTA 5 28 猴子選大王

2021-07-29 22:30:09 字數 653 閱讀 6547

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

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

≤1000)。

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

11
7

思想:使用迴圈鍊錶建立約瑟夫環來實現,過程比較清晰。

#include #include using namespace std;

typedef struct node

}*link;

link create(link l,int n)//建表

p->next=l->next;//建立迴圈鍊錶

return p;

}void caculate(link l,int n)//計算

q=p->next;//指標保留

p->next=q->next;//刪除出列的元素

num=0;

i--;

if(i==1)

break;

}cout}int main()

PTA 猴子選大王

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

5 28 猴子選大王 20分

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

鍊錶 PTA 猴子選大王

一群猴子要選新猴王。新猴王的選擇方法是 讓n只候選猴子圍成一圈,從某位置起順序編號為1 n號。每只猴子預先設定乙個數 或稱定數 用最後乙隻猴子的定數d,從第一只猴子開始報數,報到d的猴子即退出圈子 當某只猴子退出時,就用它的定數決定它後面的第幾隻猴子將在下次退出。如此不斷迴圈,最後剩下的乙隻猴子就選...