• 洛谷 P1996 约瑟夫问题


    题目背景

    约瑟夫是一个无聊的人!!!

    题目描述

    n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,……依次类推,直到所有的人都出圈,请输出依次出圈人的编号.

    输入输出格式

    输入格式:

     

    n m

     

    输出格式:

     

    出圈的编号

     

    输入输出样例

    输入样例#1: 复制
    10 3
    输出样例#1: 复制
    3 6 9 2 7 1 8 5 10 4

    说明

    m, n le 100m,n100

    思路:模拟

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int n,k,num,pos;
    int vis[110];
    int main(){
        scanf("%d%d",&n,&k);
        for(int i=1;i<=n;i++){
            num=0;
            while(1){
                pos++;if(pos>n)    pos=1;
                if(!vis[pos])    num++;
                if(num==k)    vis[pos]=1,cout<<pos<<" ";
                if(num==k)    break;
            }
        }
    }
    细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。 雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
  • 相关阅读:
    链表问题
    有关动态规划的LeetCode
    正则表达式匹配与自动机
    基于数据库范式的一点点想法
    html5 API
    Web鼠标事件
    webpack模块化原理
    Jquery数据缓存
    图片懒加载
    MySql存储过程的调试
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/7853326.html
Copyright © 2020-2023  润新知