zoukankan      html  css  js  c++  java
  • 2056=不敢死队问题

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 struct node
     4 {
     5     int data;
     6     struct node*next;
     7 };
     8 int main()
     9 {
    10     int m,n,x,i,j;
    11     while(~ scanf("%d",&n)&&n!=0)
    12     {
    13         struct node*head,*p,*end;
    14         head=(struct node*)malloc(sizeof(struct node));
    15         head->next=NULL;
    16         end=head;
    17         head->data=1;//因为每次都是一个新的循环,所以都要重置,否则第二次循环会出错误。
    18         for(i=0; i<n-1; i++)
    19         {
    20             p=(struct node*)malloc(sizeof(struct node));
    21             p->data=i+2;
    22             p->next=head;//环状问题,让p的下一个等于head。
    23             end->next=p;
    24             end=p;
    25         }
    26         for(j=1; j<n; j++)
    27         {
    28             if(j==n-1)printf("%d
    ",n);//如果只剩排长了,那么直接输出。
    29             p=end->next;
    30             for(i=1; i<=4; i++)
    31             {
    32                 p=p->next;
    33                 end=end->next;//循环次数要比m小一个,以便于下面进行删除操作。
    34             }
    35             if(p->data==1)
    36             {
    37                 printf("%d
    ",j);
    38                 break;
    39             }
    40             end->next=p->next;//和约瑟夫一样的删除操作。
    41         }
    42     }
    43     return 0;
    44 }
  • 相关阅读:
    UISegmentControl
    UISegmentControl,UISwich,UIPageControl
    UIPageControl,UISlider
    UISlider
    触摸事件,响应者链和手势
    NIO Socket
    处理多线程问题的工具类
    Java多线程疑难点
    软中断和硬中断的联系与区别
    进程—内存描述符(mm_struct)
  • 原文地址:https://www.cnblogs.com/Angfe/p/10485514.html
Copyright © 2011-2022 走看看