P1996 约瑟夫问题 2037:【例5.4】约瑟夫问题

P1996 约瑟夫问题

约瑟夫问题 - 洛谷

2037:【例5.4】约瑟夫问题

信息学奥赛一本通(C++版)在线评测系统

1748:约瑟夫问题

OpenJudge - 1748:约瑟夫问题

3.2数据结构之指针和链表 1748:约瑟夫问题

OpenJudge - 1748:约瑟夫问题

2746:约瑟夫问题

OpenJudge - 2746:约瑟夫问题

3254:约瑟夫问题No.2

OpenJudge - 3254:约瑟夫问题No.2




 C++参考代码一:

#include <iostream>
using namespace std;
struct node
{
	long d;
	node *next;
};
long n,m;
node *head,*p,*r;
int main()
{
	long i,j,k,l;
	cin>>n>>m;     //8 5
	
	head=new node;
	head->d=1; 
	head->next=NULL; 
	r=head;//r为尾指针 
	
	for (i=2;i<=n;i++)
	{
		p=new node;
		p->d=i;
		p->next=NULL;
		r->next=p;
		r=p;
	}
	r->next=head; 
	
	r=head;
	for (i=1;i<=n;i++)//n=8 m=5 
	{
		for (j=1;j<=m-2;j++) r=r->next;  
		
		cout<<r->next->d<<" ";
		
		r->next=r->next->next;
		r=r->next;
	}
	
	return 0;
}


C++参考代码二:

/*
P1996 约瑟夫问题
https://www.luogu.com.cn/problem/P1996
*/
/*
2037:【例5.4】约瑟夫问题
http://ybt.ssoier.cn:8088/problem_show.php?pid=2037

1748:约瑟夫问题
http://noi.openjudge.cn/ch0302/1748/

总时间限制: 1000ms 内存限制: 65536kB
描述
约瑟夫问题:有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1开始报数。就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王,编程求输入n,m后,输出最后猴王的编号。

输入
每行是用空格分开的两个整数,第一个是 n, 第二个是 m ( 0 < m,n <=300)。最后一行是:

0 0

输出
对于每行输入数据(最后一行除外),输出数据也是一行,即最后猴王的编号
样例输入
6 2
12 4
8 3
0 0
样例输出
5
1
7
*/
#include<iostream>
using namespace std;
int n,m,s,f,t,x=0;
bool a[1301];		//根据题意开出数组大小
int b[1301];
int main()
{

	cin>>n>>m;		//共n人,报到m出圈
	//cout<<endl;
	for (t=1;t<=n;++t) a[t]=false;        //等同于memset(a,0,sizeof(a)),要调用cstring库
	f=0;  
	t=0;  
	s=0;   //刚开始所有变量默认值也是0,或者用f=t=s=0;
	//int temp;
	do
	{
		++t;		//逐个枚举圈中的所有位置
		if (t==n+1) t=1;	//数组模拟环状,最后一个与第一个相连
		if (a[t]==false) ++s;	//第t个位置上有人则报数
		if (s==m) 		//当前报的数是m
		{
			s=0;		//计数器清零
			cout<<t<<" ";	//输出出圈人的编号
			a[t]=true;		//此处的人已出圈,设置为空
			f++;	 	//出圈的人数增加一个
		}
	} while(f!=n);
	//cout<<t<<endl;
	//b[++x]=t;	

		//直到所有的人都出圈为止
	for(int i=1;i<=x;i++)
	{
		cout<<b[i]<<endl;
	}
	return 0;
}





  


信息学奥赛寒假、暑假、国庆十一假期 如何进行集训

信息学奥赛寒假、暑假、国庆十一假期 如何进行集训_dllglvzhenfeng的博客-CSDN博客

2022年暑期及9月份CSP-J1 CSP-S1初赛 培训计划及学习要点

2022年暑期及9月份CSP-J1 CSP-S1初赛 培训计划及学习要点_dllglvzhenfeng的博客-CSDN博客

CSP-J1 CSP-S1 第1轮 初赛 相关在线测试网站

CSP-J1 CSP-S1 第1轮 初赛 相关在线测试网站_dllglvzhenfeng的博客-CSDN博客

 CSP-J CSP-S NOI初赛

https://blog.csdn.net/dllglvzhenfeng/category_11823100.html

CSP-J CSP-S NOIP历年真题

https://blog.csdn.net/dllglvzhenfeng/category_11628421.html

CSP-J CSP-S复赛

https://blog.csdn.net/dllglvzhenfeng/category_11870525.html




 国内顶尖信息学奥赛名校训练模式有感

国内顶尖信息学奥赛名校训练模式有感

已经上了好几年C++课程,为何还是做不出信息学奥赛的题?

已经上了好几年C++课程,为何还是做不出信息学奥赛的题?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dllglvzhenfeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值