数组-11. 猴子选大王(20)

来源:互联网 发布:kk5.0软件下载 编辑:程序博客网 时间:2024/05/09 05:44

一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1-N号。从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。如此不断循环,最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王?

输入格式:

输入在一行中给一个正整数N(<=1000)。

输出格式:

在一行中输出当选猴王的编号。

输入样例:
11
输出样例:
7

#include <stdio.h>int main(){    int i, n, amount, cnt;    int arr[1000];        scanf("%d", &n);        for (i=0; i<n; i++) {        arr[i] = i+1;    }    amount = n;    cnt = 0;    for (i=0; amount!=1; i=(i+1)%n) {        if (arr[i] != 0) {            cnt++;            if ( cnt == 3 ) {                arr[i] = 0;                cnt = 0;                amount--;            }        }    }    for ( i=0; i<n; i++ ) {        if ( arr[i] != 0 ) {            printf("%d\n", arr[i]);        }    }        return 0;}


0 0
原创粉丝点击