CSDN 报数游戏-双向循环链表实现

一道关于链表运用的题目,描述了n个人围成圆圈,按照x和y的规则报数并淘汰,直到剩一人。举例展示了报数过程,要求输入n, x, y,输出最后剩下的人的编号。数据范围:1 < n <= 1000000, 1<=x,y<=1000000000。" 77917638,5721517,使用OpenCV进行车辆追踪实战指南,"['计算机视觉', '图像处理', 'OpenCV', 'Python编程', '车辆追踪']
摘要由CSDN通过智能技术生成

通过这道题,对于链表的运用感觉灵活了许多……


有n个人编号1-n,按照顺时针方向围成一个圆圈。它们预先定义好两个整数x,y。先从1号顺时针方向开始报数,报到x的人出圈,再从x的逆时针方向的后一个人从1开始报数,报到y的人出圈,再从这个人的顺时针方向后一个人开始从1报数,报到x的人出圈,如此反复,直到最后剩下一个人为止,问最后剩下的那个人是几号?
比如n = 10, x = 3, y = 2,报数的过程如下

报数人 1, 2, 3 3出圈
报数人 2,1 1出圈
接着2,4 ,5 5出圈
接着4,2 2出圈
接着4,6,7 7出圈
接着6,4 4出圈
接着6,8,9 9出圈
接着8,6 6出圈
接着8,10,8 8出圈
剩余 10号。

输入n,x,y输出剩余的编号。
数据范围 1 < n <= 1000000, 1<=x,y<=1000000000。

#include<iostream>
using namespace std ;

struct Node	{
	int data ;
	Node *prier ;
	Node *next ;
};

typedef Node *LinkList ;

void Create( LinkList &L , int n )	{       //创建双向循环链表
	LinkL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值