7-50 猴子选大王(20 分)
来源:互联网 发布:mac win系统截图快捷键 编辑:程序博客网 时间:2024/05/17 08:00
一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号。从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。如此不断循环,最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王?
输入格式:
输入在一行中给一个正整数N(≤1000)。
输出格式:
在一行中输出当选猴王的编号。
输入样例:
11
输出样例:
7
我的代码:
(编译语言:C++。方法一:vector动态数组模拟)
#include<iostream>#include<vector>using namespace std;int main(){int n,i;cin>>n;vector<int>v;vector<int>::iterator it;for(i=1;i<=n;i++) v.push_back(i);it=v.begin();while(v.size()>1){for(i=1;i<3;i++){it++;if(it==v.end()) it=v.begin();}it=v.erase(it);if(it==v.end()) it=v.begin();}cout<<*it<<endl;return 0;}
提交结果:
(编译语言:C语言。方法二:数学方法解决约瑟夫问题)
#include<stdio.h>int main(){int n,i,sum=0;scanf("%d",&n);for(i=2;i<=n;i++) sum=(sum+3)%i;printf("%d",sum+1);return 0;}
提交结果:
我的代码:
(编译语言:Java。方法三:整数数组模拟)
import java.util.Scanner;public class Main{public static void main(String[] args) {int n,m,i,j=0,vis[]=new int[1001];Scanner In=new Scanner(System.in);n=In.nextInt();m=n;for(i=1;i<=n;i++){if(vis[i]==0){if(m==1) break;j++;if(j==3){j=0;vis[i]=1;m--;}}if(i==n) i=0;}System.out.printf("%d\n",i);}}
提交结果:
阅读全文
0 0
- 7-50 猴子选大王(20 分)
- 5-28 猴子选大王 (20分)
- 5-28 猴子选大王 (20分)
- 5-28 猴子选大王 (20分)
- 5-28 猴子选大王 (20分)
- 5-28 猴子选大王 (20分)
- 5-28 猴子选大王 (20分)
- 5-28 猴子选大王 (20分)
- PAT-JAVA-5-28 猴子选大王 (20分)
- PAT数组-11. 猴子选大王(20)
- 数组-11. 猴子选大王(20)
- 数组-11. 猴子选大王(20)
- 数组-11. 猴子选大王(20)
- 数组-11. 猴子选大王(20)
- 数组-11. 猴子选大王(20)
- 数组-11. 猴子选大王(20)
- 数组-11. 猴子选大王(20)
- [pattest]7-28 猴子选大王
- presto的QueryExecution的start方法
- zabbix 如何在problem视图新增一列
- linux查看端口号以及关闭端口号
- 20171202练习题组
- C++/C++11中命名空间(namespace)的使用
- 7-50 猴子选大王(20 分)
- PHP约瑟夫环问题
- python基础1:认识python和基础知识
- python与cgi
- adb将Apk内置到系统中(system/priv-app)
- 初识自动化测试(about selenium)
- 慕课的画布钟表代码
- socket.io的使用之简单聊天室案例
- redis两种持久化方式的优缺点