1. 程式人生 > >7-28 猴子選大王(20 分)

7-28 猴子選大王(20 分)

code bre 大王 printf cti 圈子 格式 猴子選大王 can

7-28

7-28 猴子選大王(20 分)

一群猴子要選新猴王。新猴王的選擇方法是:讓N只候選猴子圍成一圈,從某位置起順序編號為1~N號。從第1號開始報數,每輪從1報到3,凡報到3的猴子即退出圈子,接著又從緊鄰的下一只猴子開始同樣的報數。如此不斷循環,最後剩下的一只猴子就選為猴王。請問是原來第幾號猴子當選猴王?

輸入格式:

輸入在一行中給一個正整數N(≤1000)。

輸出格式:

在一行中輸出當選猴王的編號。

輸入樣例:

11

輸出樣例:

7

AC代碼

#include<stdio.h>
int main(){//用對列應該好做,那麽現在不會隊列,怎麽辦呢? 
    int hou[1000];
    int num;
    scanf("%d",&num);
    for(int i=1;i<=num;i++){
        hou[i]=1;
    }
    int baoshu=0;
    int chuju=0;
    int i=1;
    while(i){
        if(hou[i]==1) 
        baoshu++;
        if(baoshu==3){
            hou[i]=0;
            baoshu=0;
            chuju++;
            if(chuju==num){
                printf("%d",i);
                break;
            }
        }
        i++;
        if(i==num+1)
        i=1;
    }
    return 0;
}

7-28 猴子選大王(20 分)