首页 > 编程语言 >3254:约瑟夫问题No.2C++

3254:约瑟夫问题No.2C++

时间:2024-01-17 18:47:35浏览次数:20  
标签:int 3254 C++ 出队 No.2 include

\

这题思路还是挺多的。

如果用数学的角度考虑。知道了n,p,m自然就知道下一个要出队的人的编号。然后一个个输出就行了。

还可以用循环链表做。

还可以用队列。出队在入队。

#include<iostream>
#include<queue>
using namespace std;

int main(){
    int n , p , m ;
    while(cin >> n >> p >> m){
        if(n==0) break;
        queue<int> q;
        for(int i = 1;i<=n;i++){
            q.push(i);
        }
        for(int i =1;i<p;i++){
            int t=q.front();
            q.pop();
            q.push(t);
        }
        int flag=0;
        while(!q.empty()){
            for(int i =1;i<m;i++){
                int t=q.front();
                q.pop();
                q.push(t);
            }
            int t=q.front();
            q.pop();
            if(!flag){
                cout << t;
                flag=1;
            }else{
                cout << ',' << t ;
            }
        }
        cout << '\n';
    }
    return 0;
}

结果:

标签:int,3254,C++,出队,No.2,include
From: https://www.cnblogs.com/llllmz/p/17970720

相关文章

  • C++ 面试题
    目录构造函数不能声明为虚函数虚函数表是如何在C++中被初始化的?虚函数表和虚函数指针在内存中的具体存储方式是什么?构造函数不能声明为虚函数在C++中,构造函数不能声明为虚函数。这是因为在执行类的构造函数时,内存中还没有虚表,也就是还没有定义虚指针。因此,构造函数必须始终是非......
  • C++中setw和setfill函数的结合应用
    一、头文件头文件为#include<iomanip>其中io代表输入输出,manip是manipulator(操纵器)的缩写iomanip的作用:主要是对cin,cout之类的一些操纵运算子,比如setfill,setw,setbase,setprecision等等。它是I/O流控制头文件,就像C里面的格式化输出一样。二、setw函数s......
  • KY20 完数与盈数C++
    练习使用向量vector容器。遍历每个数取余就好了。然后记录下来。#include<iostream>#include<vector>usingnamespacestd;intmain(){vector<int>B;vector<int>C;for(inti=2;i<=60;i++){vector<int>A;intm;......
  • C++ STL标准模板库
    目录简介容器(Containers)迭代器(Iterators)算法(Algorithms)函数对象(FunctionObjects)适配器(Adaptors)分配器(Allocators)std::min_element()简介C++中的STL(标准模板库)可以分为六个部分,分别是容器(Containers)、迭代器(Iterators)、算法(Algorithms)、函数对象(FunctionObjects)、适配器(Adapto......
  • 前缀和求解(c++)
    数组ana1a2...an前缀和Si=a1+a2+...+ai①如何求②作用//一维数组前缀和的计算#include<iostream>usingnamespacestd;constintN=100010;inta[N],s[N];intn,m;intmain(){scanf("%d%d",&n,&m);for(inti=1;i<=n;......
  • C++11稳定性与兼容性机制
    字符串的原始字面量使用样例:R“xxx(rawstring)xxx”其中括号内的即是原始字面量,可以直接表示字符串而不需要做转义,需注意括号前后的xxx字符串会被忽略且必须一样stringstr="D:\hello\world\test.text";//1cout<<str<<endl;stringstr1="D:\\hello\\world\\tes......
  • c++语法
    基本语法C++是一种通用的编程语言,具有面向对象的特性。以下是一些C++的基本语法:注释:在C++中,注释可以使用//表示单行注释,或者使用/**/表示多行注释。cppCopycode/*这是多行注释*/头文件:C++中使用头文件来引入库和声明函数。#include<iostream>//输......
  • c++基础
    c++基础#include<iostream>usingnamespacestd;//定义类AAclassAA{private:inta;//私有数据成员apublic://构造函数,用于初始化aAA(intvalue){a=value;}//公有成员函数,用于获取a的值intGetValue(){retur......
  • C++:GDAL中CreateCopy()函数生成的栅格图像如何修改波段数?
      本文介绍基于C++语言GDAL库,为CreateCopy()函数创建的栅格图像添加更多波段的方法。  在C++语言的GDAL库中,我们可以基于CreateCopy()函数与Create()函数创建新的栅格图像文件。其中,CreateCopy()函数需要基于一个已有的栅格图像文件作为模板,将模板文件的各项属性信息(例如空......
  • C++学习日记 2024-1-16
    开始学习C++几天了,之前没有记录,从现在开始,记录一下学习过程复习与回忆:1.引用与指针共同优点:只用引用与指针,在传递参数时,可以减少拷贝,减少内存消耗,提高效率指针优点:指针比引用更强大,所有引用能做的事,指针都能做,指针缺点:危险,指针可以为空,指针指向地址,同一地址可以......