zoukankan      html  css  js  c++  java
  • 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

    /*
    有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
    解题思路:
        1、设数组a[n],初始化数组a;
        2、将数组a中的数循环赋值,赋值前需判断该位是否为0;
        如何找到应该剔除的数?若n为4,则前一位是应该剔除的数,将其置为0,n重置为1,在此时将标记数++。
        如何判断这是最后应该剔除的数?若标记数为N,则表明这是最后一次剔除,输出即可。
    */
    #include<stdio.h>
    #include<math.h>
    #include<malloc.h>
    #include<string.h>
    #define N 8
    main()
    {
        int i,k,a[N],n;
        for(i=0;i<N;i++){
            a[i]=i+1;
        }
        i=0;
        n=1;
        k=0;
        while(n<=3){
            i=i%N;
            if(a[i]!=0){
                a[i]=n;
                n++;
            }
            i++;
            if(n==4){
                a[i-1]=0;
                k++;
                n=1;
            }
            if(k==N){
                printf("%d
    ",i);
                break;
            }
        }
    }
  • 相关阅读:
    JSON 使用
    JSON 语法
    JSON 简介
    什么是 JSON ?
    PHP 数组排序
    PHP 数组
    swan.after
    Page.after
    App.after
    AOP说明
  • 原文地址:https://www.cnblogs.com/zhaohuan1996/p/12179885.html
Copyright © 2011-2022 走看看