zoukankan      html  css  js  c++  java
  • 游戏201712-2

    #include<iostream>
    #include<queue>
    using namespace std;
    
    int main()
    {
        int n,k;
        queue<int> q;
        cin>>n>>k;
        //队列初始化
    
        for(int i=1;i<=n;i++)
        {
            q.push(i);
        } 
        int no=0,head;
        while(!q.empty())
        {
            head=q.front();
            q.pop();
            no++;
            if(no % k == 0 || no % 10 == k)
                ;
            else
                q.push(head);
        }
        cout<<head<<endl;
        return 0;
    }

    Tips:

    看到这个题目,第一想到的肯定时要报数嘛,还要循环起来,那就用循环队列,可是难道要自己写?
    利用STL中queue实现循环队列
    循环队列主要是有一个指针可以指来指去,来去自如,但queue中好像能用也就时头front和尾back,但这都固定没法用。
    问题就来了
    那么既然想要指针绕着队列转没办法实现,那就让队列自转经过指针就好了。
    好,第一个过来(用front),先站出来(赋值给一个临时额外变量,然后pop掉),实现所需操作,然后若还需要(本题中就需要判断是删去还是还要保留)站到队尾去。
    下一个过来,让朕好好看看,然后下一个。。。。
    如此一来,可不就转起来了?

    about List:http://www.cplusplus.com/reference/list/list/

    about function erase:http://www.cplusplus.com/reference/list/list/erase/

    每种容器都定义了自己的迭代器类型,如list:

    list<int>::iterator    iter;    //定义一个名为iter的变量
    list<int>::iterator iter1=iter;//此时两个迭代器均指向同一个内存区域。
  • 相关阅读:
    【第三章】DI的配置使用(一)
    【第二章】IoC的配置使用(一)
    【第二章】IoC的基础与详解(一)
    【第一章】 Spring概述(二)
    【第一章】 Spring概述(一)
    数据库分库分表思路
    Java的内存模型JVM
    Servlet 单例多线程详细解释
    三极管
    续流二极管
  • 原文地址:https://www.cnblogs.com/WuDie/p/11318755.html
Copyright © 2011-2022 走看看