&铁臂阿童木 2023-10-26 20:53 采纳率: 50%
浏览 5

(标签-蓝桥杯|关键词-stream)(相关搜索:蓝桥杯|出圈约瑟夫)

蓝桥杯题集中的第1160道:出圈(约瑟夫问题)
题目描述:
设有n个人围坐一圈并按顺时针方向从1到n编号,从第1个人开始进行1到m的报数,报数到第个m人,此人出圈,再从他的下一个人重新开始1到m的报数,如此进行下去直到所剩下一人为止。
输入格式:
输入多行,每行2个数,分别表示n和m.
输出格式:
计算每一行中最后剩下这个人的编号.
样例输入:

10 3

样例输出:

4

我的解答

#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,m;
    cin>>n;
    cin>>m;
    vector<int> people(n,0);
    int out=0,cur=-1;
    while(out<(n-1)){
        for(int i=0;i<m;i++){
            cur=(cur+1)%n;
            while(people[cur]){
                cur=(cur+1)%n;
            }
        }
        people[cur]=1;
        out++;
    }
    do{
        cur=(cur+1)%n;
    }while(people[cur]);
    cout<<cur+1<<endl;
    
    return 0;
    
}

提交结果:

img


究竟是哪里出了问题🤯

  • 写回答

2条回答 默认 最新

报告相同问题?

问题事件

  • 创建了问题 10月26日

悬赏问题

  • ¥15 关于stm32hal库驱动ft6336触摸屏遇到的问题
  • ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂
  • ¥15 数字信号处理考试111
  • ¥100 关于#audobe audition#的问题,如何解决?
  • ¥15 allegro17.2生成bom表是空白的
  • ¥15 请问一下怎么打通CAN通讯
  • ¥20 如何在 rocky9.4 部署 CDH6.3.2?
  • ¥35 navicat将excel中的数据导入mysql出错
  • ¥15 rt-thread线程切换的问题
  • ¥15 高通uboot 打印ubi init err 22