Advertisement

c/c++ programming question: monkey king selection (two methods using array and linked list)

阅读量:

题目描述

一群猴子需要选出新的猴王。新猴王的选定方式为:将N只候选猴子围成一个圈,从某一位置开始依次编号为1至N。从编号为1的猴子开始进行报数,每轮报数从1到3,凡是报到3的猴子将被淘汰出局。随后,从被淘汰猴子的下一只猴子开始继续进行相同的报数流程。如此反复循环,直至只剩下最后一只猴子,该猴子即被选为猴王。请问,最终当选猴王的是最初编号为多少的猴子?

输入

输入内容为一行中提供一个正整数N(不超过1000)。

输出

在一行中输出所选猴王的原始编号。

样例输入

复制代码
    11

示例输出

7

以下为AC代码实现:

复制代码
 #include "iostream"

    
 using namespace std;
    
  
    
 int main(int argc, char* argv[])
    
 {
    
 	int count=0,num,i;
    
 	int a[1010],n;
    
 	cin>>n;
    
 	num=n;//记录未退出的猴子数
    
 	for (i=1;i<=n;i++)
    
 	{
    
 		a[i]=1;//每个猴子标记为1,表示该猴子未退出
    
 	}
    
 	while(num!

全部评论 (0)

还没有任何评论哟~