zoukankan      html  css  js  c++  java
  • OpenJudge 2746 约瑟夫问题 C++

    链接地址:http://bailian.openjudge.cn/practice/2746

    题目:

    总时间限制:
    1000ms
    内存限制:
    65536kB
    描述
    约瑟夫问题:有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1开始报数。就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王,编程求输入n,m后,输出最后猴王的编号。

    输入
    每行是用空格分开的两个整数,第一个是 n, 第二个是 m ( 0 < m,n <=300)。最后一行是:

    0 0

    输出
    对于每行输入数据(最后一行除外),输出数据也是一行,即最后猴王的编号
    样例输入
    6 2
    12 4
    8 3
    0 0
    样例输出
    5
    1
    7

    思路:

    模拟题,使用vector保存,可先手动计算结果寻找思路,再编写代码

    代码:

     1 #include <iostream>
     2 #include <vector>
     3 using namespace std;
     4 
     5 int main()
     6 {
     7     int n,m;
     8     cin>>n>>m;
     9     while(n!=0)
    10     {
    11         vector<int> v;
    12         for(vector<int>::size_type i = 0; i != n; ++i)
    13         {
    14             v.push_back(i+1);
    15         }
    16         int k = 0;
    17         while((v.size()-1) != 0 )
    18         {
    19             k = (k + m - 1) % v.size();
    20             v.erase(v.begin() + k);
    21 
    22         }
    23         cout<<v[0]<<endl;
    24         cin>>n>>m;
    25     }
    26     return 0;
    27 }
  • 相关阅读:
    CF 13B Letter A
    CF12D Ball
    题解 CF11C
    CF10E Greedy Change
    CF10D LCIS&&Acwing 272
    CF10C Digital Root
    yLOI2019 青原樱
    js有关时间日期的操作
    js 读取 cookie
    nginx有关.htaccess小结
  • 原文地址:https://www.cnblogs.com/mobileliker/p/3510647.html
Copyright © 2011-2022 走看看