问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求用c语言做约瑟夫环问题

发布网友 发布时间:2022-05-10 18:48

我来回答

2个回答

热心网友 时间:2023-10-22 18:25

#include<stdlib.h> /*杂类声明*/
#include<stdio.h>
struct node
{
int num;
int key;
struct node *prior,*next;
};

void main()
{
int n,m,i,j,k;
struct node *head,*p,*s;
printf("\t\t\t The question of YSFH\n\n\n");
printf("Please input num of person :");
scanf("%d",&n);
printf("\n");
printf("Please input m=");
scanf("%d",&m);
printf("\n");
s=(struct node*)malloc(sizeof(struct node));
for(i=1;i<=n;i++){
if(i==1)
head=s;
p=s; /*P指向新建的接点*/
p->num=i;
s=(struct node*)malloc(sizeof(struct node)); /*创建下一个结点,*/
p->next=s; /*创建下一个结点,连接在P后*/
s->prior=p;
}
p->next=head; /*所有结点创建完毕,把尾指针与头指针相连*/
head->prior=p;
free(s);
p=head;
printf("\nDequeue Sequence :");
i=1;
while(p->next!=p)
{
if(i==n)
i=1;
j=0;
while(j!=m)
{
p=p->next;
j++;
}
printf("%3d",p->prior->num);
p->prior->prior->next=p; /*删除结点,作结点前后结点的连接*/
p->prior=p->prior->prior;
i++;

}
printf("\n");
}
用单循环链表做的

热心网友 时间:2023-10-22 18:25

自己写的,一维数组轻松解决
//功能:解决约瑟夫问题

#include<stdio.h>
#define N 9
#define K 2
#define M 3

//给数组赋值
void setDate(int a[],int n)
{int i;
for(i=0;i<n;i++)
a[i]=i+1;
}
//删除被选中的孩子
void deleted(int a[],int m,int len)
{
int i=m;
do
{
a[i]=a[i+1];
i++;
}while(i<len);
}

//开始play
void play(int a[],int k,int m)
{
int len =N;
int dm=k+m-2;//第一个被剔除的孩子
while(len!=1)
{printf("第%d个孩子被剔除。\n",a[dm]);
deleted(a,dm,len);//将被剔除的孩子从数组中删除
dm=dm+M-1;//下一个被剔除的孩子
len--;//数组的长度减1
if(dm>=len) dm=dm-len;
}
printf("最后一个孩子是%d.",a[0]);//最后一个孩子被放在a[0]中
}
main()
{
int a[N];
setDate(a,N);
play(a,K,M);

}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 楼梯的水泥台阶上可以铺地板革吗 手机腾讯会议共享屏幕播放视频没声 腾讯会议共享屏幕没声音怎么办 约瑟夫问题c语言 第五约瑟夫3句语录? 求约瑟夫问题的C语言程序和流程图,程序用链表解决。麻烦帮忙一下吧! 第五人格约瑟夫绯红皮肤怎么获得 c语言解决约瑟夫问题 c语言怎么解决约瑟夫问题? 约瑟夫dm还会返场吗 可扩展PCI是PCI-E么?还是什么? 怎么去除多年黑眼圈,有什么好办法吗? PCI和PCI-E串口卡有什么区别 三个公积金账户怎么合并 PCI、PGP总线都是串行总线吗? PCI插槽与PCI-E插槽有什么区别?? 怎样防治猕猴桃细菌性溃疡病?提高树体的抗病力到底有多重要? 如何防治猕猴桃细菌性溃疡病 pci PCIE都是串行的吗 猕猴桃溃疡病怎么预防效果最好 使命召唤手游吃鸡模式怎么忽明忽暗的? 猕猴桃溃疡病的防治方法 猕猴桃溃疡病用什么药治疗最有效? 哪位能提供用C语言解决的约瑟夫问题程序 需要详细步骤解答 我是个菜... gt2手表真皮表带有味道吗? 约瑟夫环问题 数据结构实训需要 用C语言编程 哪位兄台给个能直接运行... 中央十台播,妙医生,控三高,治心脑梗,可信吗? 单项式与多项式的乘法 婴儿可以吃的麸质食物 妙医生手机真正能作辅助沿疗吗? 日常哪些食物中含有“小麦麸质”、“二亚硫酸钾”? 妙医生手环疗程到怎么办 妙医生腕表激光仪坏了怎么办? 二辛酯受什么大宗产品价格的影响 JTJ的什么的缩写?有关公路水运的! 营运性车辆保险,如何赔偿? 两车碰撞,我是责任方,对方车辆说是租赁公司的,对于租赁公司的营运车辆,保险公司如何赔付 营运车辆被撞赔偿标准,损失是找保险公司要还是肇事司机要呢 苹果手机SIM卡现实无效 但是把卡放到别的手机上就可以 这是怎么回事... iphone显示无服务,联通的手机卡,用别的手机卡能用,别人给我打电话显示停机。 可以委托他人开设为自己股票帐户吗? 歌词:祝你新年好呀祝你新年好,祝你在新的一年里万事如意步步高。歌名是什么? 我怕新年的钟声太响你会听不到我的祝福什么歌?