⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 josephus.cpp

📁 一些基本的数据结构
💻 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 + -