洛谷 P1996 約瑟夫問題 -开发者知识库

洛谷 P1996 約瑟夫問題 -开发者知识库,第1张

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;
}
}
}

 

最佳答案:

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复