josephu.cpp

来自「大数相乘、计算时间、josep问题、计算JC、分形图形」· C++ 代码 · 共 112 行

CPP
112
字号
#include "stdio.h" 
#include "stdlib.h" 
//#include "dos.h" 
//#include "string.h" 
#include <iostream.h> 
//结点 
typedef struct node { 
  int id;                //编号 
  int dirty;             //记录是否被扔过 
  struct node * next; 
  } NODE; 
//海 
typedef struct sea { 
  int id;                //编号 
 // int no; 
  struct sea * link; 
  } SEA; 


SEA *seatop=NULL; 

void push(NODE *x,SEA **toppt) 
{ 
  SEA *p=(SEA *)malloc(sizeof(SEA)); 
  p->id=x->id; 
  p->link=*toppt; 
  *toppt=p; 
} 

int  pop(int *id,SEA **toppt) 
{ 
  SEA *p=*toppt; 
  if(toppt==NULL) return 1; 
  *id=p->id; 
  id=id; 
  *toppt=p->link; 
  free(p); 
  return 0; 
} 
void del(NODE *back,NODE *index) 
{ 
  back->next=index->next; 
  //free(index); 
  //index=back; 
  //cout<<back->id<<endl; 
  //cin.get(); 
} 
void insert(NODE *index,int id) 
{ 
  NODE *u; 
  u=(NODE *)malloc(sizeof(NODE)); 
  u->id=id; 
  id=id; 
  u->next=index->next; 
  index->next=u; 
  index=index->next; 
} 
void main(void) 
{ 
  node *index,*back,*head,*tail,*p; 
  int insea=0; 
  index=back=head=tail=NULL; 
  back=back; 
  int index9,index11; 
  index9=1;index11=1; 
  for(int i=0;i<30;i++) 
  { 
     p=(struct node *)malloc(sizeof(struct node)); 
     //NODE *p; 
     p->id=(i+1); 
     p->dirty=0; 
     p->next=head; 
     if(head==NULL) head=tail=p; 
     else tail=tail->next=p; 
     } 
  index=head; 
  while(insea<15) 
  { 
    if(index9%9==0&&index11%11!=0) 
    { 
      index->dirty=1; 
      push(index,&seatop); 
      del(back,index);////del 
      //push(index,seatop); 
      insea++; 
    }; 
    if(index11%11==0&&index9%9!=0) 
    { 
      //insert(index,seatop); 
      int temp=0; 
      pop(&temp,&seatop); 
      insert(index,temp); 
      insea--; 
      } 
    index9++; 
    index11++; 
    back=index; 
    index=index->next; 
    //cout<<index->id<<endl; 
  } 
  for(i=0;i<15;i++) 
  { 
   if(index->dirty==0) 
      cout<<"clearman"<<index->id<<endl; 
   cout<<index->id<<'\t'; 
   index=index->next; 
   cout<<seatop->id<<endl; 
   seatop=seatop->link; 
  } 
  //cin.get(); 
} 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?