首页 > 学院 > 开发设计 > 正文

约瑟夫问题

2019-11-11 01:22:47
字体:
来源:转载
供稿:网友

题目背景 约瑟夫是一个无聊的人!!!

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

输入输出格式 输入格式: n m

输出格式: 出圈的编号

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

说明 这题只是按它的规律去输出而已。


var i,n,m,k,j:longint; a,b:array[0..100005]of longint;begin readln(n,m); for i:=1 to n do begin a[i]:=i; b[i]:=i+1; end; b[n]:=1; k:=n; for i:=1 to n do begin for j:=1 to m-1 do k:=b[k]; write(a[b[k]],' '); b[k]:=b[b[k]]; end;end.
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表