zoukankan      html  css  js  c++  java
  • 1008: 约瑟夫问题

    1008: 约瑟夫问题

    时间限制: 10 Sec  内存限制: 128 MB
    提交: 296  解决: 239
    [提交][状态][讨论版]

    题目描述

    约瑟夫问题:有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
    

    提示

     

    来源

    2001289

    #include <iostream>
    using namespace std;
    int main(){
     int n,m,count,index,i;
     int f[300]={0};
     while(cin>>n>>m){
      if(n==0&&m==0) break;
      count=n;
      index=0;
      for(i=0;i<n;i++){
       f[i]=1;
      }
      while(count>1){
       for(i=0;i<n;i++){
          if(f[i]==1){
           index++;
           if(index%m==0){
            count--;
            f[i]=0;
           }
          }
             }
      }
         for(i=0;i<n;i++){
          if(f[i]==1)
          cout<<i+1<<endl;
         }
     }
     return 0;
    }

  • 相关阅读:
    Vue_使用v-model指令写的简易计算器
    Vue_v-for的四种用法示例
    bs4_加载顺序
    Vue_自定义指令
    Vue_v-for中key的使用注意事项
    Vue_指令
    bs4_card(卡片)
    Vue_过滤器
    Vue_生命周期函数
    selenium 文件上传
  • 原文地址:https://www.cnblogs.com/lchzls/p/5781461.html
Copyright © 2011-2022 走看看