zoukankan      html  css  js  c++  java
  • 实验十(2)-4

    有n个人围成一圈,按顺序从1到n编号。从第一个人开始报数,报数3的人退出圈子,下一个人从1开始重新报数,报数3的人退出圈子。如此循环,直到留下最后一个人。

         要求:

    • n大于30;
    • 输出每次退出人的编号
    • 输出最后留下人的编号
    #include<stdio.h>
    #define MAXLINE 200
    int main()
    {
        int a[MAXLINE];
        int i,n,count=0,index;
        
        printf("Input a number:");
        scanf("%d",&n);
        index=n;
        for(i=0;i<n;i++){
            a[i]=0;
        }
        i=0;
        while(n>1){
            if(a[i]==0){
                count++;
                if(count==3){
                    a[i]=1;
                    printf("%d号退出
    ",i);
                    n--;
                    count=0;
                }
            }
            i++;
            if(i==index)
                i=0;
        }
        for(i=0;i<index;i++){
            if(a[i]==0)
                printf("最后留下人的编号:%d",i);
        }
        return 0;
    }
  • 相关阅读:
    CodeForces 546C(队列)
    N皇后摆放问题
    士兵队列
    货币问题
    C
    B
    ACM第三次比赛 Big Chocolate
    ACM比赛(第三次D)
    ACM第三次比赛UVA11877 The Coco-Cola Store
    uva 10382
  • 原文地址:https://www.cnblogs.com/2013djj/p/3434495.html
Copyright © 2011-2022 走看看