题目描述:
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;
- }
-
相关阅读:
go 学习02 基础知识
(附源码)spring boot大学体育赛事管理系统 毕业设计 180923
Kafka与Spark案例实践
数据库选型参考
数据库 高阶语句
基于JAVA作品测评网站计算机毕业设计源码+系统+数据库+lw文档+部署
什么是“大小端字节序”存储模式?
【计算机网络】什么是WebSocket?
算法题:383.救赎金
马术头盔外贸出口美国站CPC认证安全标准
-
原文地址:https://blog.csdn.net/Annconda/article/details/126961621