洛谷 1996——约瑟夫问题(线性数据结构)
2017-02-11 17:16
176 查看
题目背景
约瑟夫是一个无聊的人!!!
题目描述
n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,……依次类推,直到所有的人都出圈,请输出依次出圈人的编号.
输入输出格式
输入格式:
n m
输出格式:
出圈的编号
输入输出样例
输入样例#1:
10 3
输出样例#1:
3 6 9 2 7 1 8 5 10 4
运用公式dq:=(dq+m-1-1) mod (n-out)+1;(dp为上一次的位置,out为第几次出圈),然后输出a[dp]。最后将dp+1到n-out-1的数都向前移一位。
代码如下:
约瑟夫是一个无聊的人!!!
题目描述
n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,……依次类推,直到所有的人都出圈,请输出依次出圈人的编号.
输入输出格式
输入格式:
n m
输出格式:
出圈的编号
输入输出样例
输入样例#1:
10 3
输出样例#1:
3 6 9 2 7 1 8 5 10 4
运用公式dq:=(dq+m-1-1) mod (n-out)+1;(dp为上一次的位置,out为第几次出圈),然后输出a[dp]。最后将dp+1到n-out-1的数都向前移一位。
代码如下:
var a:array[1..10000] of longint; n,m,out,i,dq:longint; begin readln(n,m); out:=0; dq:=1; for i:=1 to n do a[i]:=i; while out<n do begin dq:=(dq+m-1-1) mod (n-out)+1; write(a[dq],' '); for i:=dq to n-out-1 do a[i]:=a[i+1]; inc(out); end; end.
相关文章推荐
- 普及练习场 线性数据结构 约瑟夫问题
- 洛谷 1115——最大子段和(线性数据结构)
- 洛谷 1739——表达式括号匹配(线性数据结构)
- 洛谷 1449——后缀表达式(线性数据结构)
- 数据结构学习之线性表的顺序实现(python 实现)
- 数据结构----线性表的应用
- 小菜一步一步学数据结构之(三)线性表的顺序存储结构
- 数据结构 线性表―单链表
- 【算法和数据结构】线性表(一)线性表(C++实现)
- 洛谷P2480 [SDOI2010]古代猪文(费马小定理,卢卡斯定理,中国剩余定理,线性筛)
- Java数据结构-线性表之单链表应用-单链表合并
- 《数据结构》实验二:线性表的实验 【顺序表】
- 数据结构学习----线性表的链式表示之升序排序的单链表(Java实现)
- 洛谷P1445(数学+画柿子+线性筛)
- 线性表8 - 数据结构和算法13
- 网易云课堂-陈越、何钦铭-数据结构-2016春,02-线性结构1 一元多项式的乘法与加法运算,学习笔记
- 数据结构学习笔记 --- 线性表 (顺序表)
- js 把线性的数据结构改成树形结构
- 【数据结构】数据结构总结之线性表、栈和队列
- 数据结构 线性表的基本操作(C语言)