题目描述:
N只猴子选大王,选举办法如下:从头到尾1、2、3报数,凡报3的退出,余下的从尾到头1、2、3报数,凡报3退出;余下的又从头到尾报数,还是报3的退出;依此类推,当剩下的两只猴子时,取这时报数报1的为王。若想当猴王,请问最初占据什么位置?
输入格式:
输入一个数,表示有n只猴子
输出格式:
输出一个数
样例输入:
10
样例输出:
8
提示:
n<=1000
时间限制: 1000ms
空间限制: 128MB
代码如下:
- #include
- using namespace std;
- int main(){
- int a[1001],n,m,x,s=0;
- cin>>n;
- x=n;
- for(int i=0;i
- a[i]=1;
- }
- while(1){
- s=0;
- for(int i=0;i
- s=s+a[i];
- if(x==2&&s==1){
- cout<1;
- return 0;
- }
- if(s==3){
- a[i]=0;
- s=0;
- x--;
- }
- }
- s=0;
- for(int i=n-1;i>=0;i--){
- s=s+a[i];
- if(x==2&&s==1){
- cout<1;
- return 0;
- }
- if(s==3){
- a[i]=0;
- s=0;
- x--;
- }
- }
- }
- return 0;
- }
-
相关阅读:
长篇图解etcd核心应用场景及编码实战
Python自然语言处理的力量:NLTK库介绍
SQL GROUP BY语句
自回归(AR)模型的功率谱估计
Java Double floatValue()方法具有什么功能呢?
用Python做了几个爬虫私活,赚了
C++day3
应约凯程约稿
mmdet-rfla调试经验
【java计算机毕设】 留守儿童爱心捐赠管理系统 springboot vue html mysql 送文档ppt
-
原文地址:https://blog.csdn.net/Annconda/article/details/126961621