zoukankan      html  css  js  c++  java
  • 洛谷P1996 约瑟夫问题

    使用队列queue

    数到m,先输出,然后pop

    其他的先添加到队尾,再pop

    #include <cstdio>
    #include <iostream>
    #include<string>
    #include<cstring>
    #include<cmath>
    #include<stdlib.h>
    #include<algorithm>
    #include<vector> 
    #include<queue> 
    using namespace std;
    int main()
    {
        
      int n,m;
      queue<int>q;
      cin>>n>>m;
      int a[105];
      for(int i=1;i<=n;i++)
       {
         a[i]=i;
         q.push(a[i]);
       }
    
          for(int i=1;;i++)
          {
              if(i%m==0)
            {
                cout<<q.front()<<" ";
                q.pop();
            }
            else
            {
                q.push(q.front());
                q.pop();
            }
            if(q.empty())    
            {
                break;
            }    
        }
      
       cout<<endl;
       return 0;
      
    }
  • 相关阅读:
    Poj3126
    Poj1426
    2806 红与黑
    3100 蜗牛
    1225 八数码难题
    2549 自然数和分解
    2547 东方辉针城
    2928 你缺什么
    1629 01迷宫
    1029 遍历问题
  • 原文地址:https://www.cnblogs.com/h694879357/p/13418447.html
Copyright © 2011-2022 走看看