📄 josephus.cpp
字号:
//2008.2.6//
#include "LList.h"
/*--------------------Josephus函数---------------------------*/
void Josephus(LinkList *L,int n,int k,int m )
{
LinkList p,q;
int i;
p=*L;
for(i=1;i<k;i++) p=p->next;
while(n!=1)
{ if(m==1)
q=p;
else
{
if(m==2)
{
q=p;p=p->next;
}
else for(i=1;i<m;i++)
{
p=p->next;
if(i==m-2) q=p;
}
}
if(n==2){
q->next=NULL;
printf("The finaldate is %d\n",q->date);
p->next=NULL;
}
else
{
q->next=p->next;
printf("delete is %d\n",p->date);
p=q->next;
}
--n;
}
*L=p;
}
/*-------------------------主函数------------------------*/
void main()
{
int arr[100];
int i,n,total;int k,m;
LinkList Link;
printf("Your length is ");
scanf("%d",&n);
printf("please creat the Linklist\n");
for(i=1;i<=n;i++)
{
scanf("%d",&arr[i-1]);
}
total=i; /*总计元素数量*/
Link=creat(Link,arr,total);
printf("\n");
output(Link,total);
printf("please choice from which one\n");
scanf("%d",&k); /*K代表从第几个数开始*/
printf("please choice delete the number\n");
scanf("%d",&m);
if(m==0) printf("your input is wrong\n");
else Josephus(&Link,total,k,m); /*m代表删除第几个数*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -