ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

猴子选大王

2026/9/29 1:55:57 拓冰建站 浏览量
猴子选大王

思路:首先举个例子:当N = 5 时    

1                         2                         3                        4                        5

                                                      3 

3                         

                                                                                                           3

                        3

输出4

          请观看代码                                                                        

#include <stdio.h>
int main()
{
    int n = 0;
    int i = 0;
    int count = 0;
    int z = 0;
    char arr[1002] = { '\0'};  arr是每个猴子的编号
    scanf("%d",&n);
    if( n == 1 )
    {
        printf("1\n");
        return 0;
    }
    count = n;
    for( i = 1 ; i <= n ;i++)
    {
        
        arr[i] = '1'; 将每个猴子的编号赋为1  , 当报到的猴子赋为0
    }
    i = 0;
    while( 1 )
    {
    z++;
    i++;
    if( z % 3 == 0 && arr[i] == '1')必须是未被淘汰的猴子
    {
        arr[i] = '0';
        z = 0;
        count--;
        if( count == 1 )
        {
            for( i = 1 ; i <= n ;i++)
            {
                if( arr[i] == '1')
                {
                    printf("%d\n",i);
                    return 0;
                }
            }
        }
    }
    else if( arr[i] == '0')
    {
        z--;
    }
    if( i == n )
    {
        i = 0;
    }
    }
    return 0;
}