1. 程式人生 > 實用技巧 >小白經典CNN論文復現系列(一):LeNet1989

小白經典CNN論文復現系列(一):LeNet1989

7-28 猴子選大王 (20分)
一群猴子要選新猴王。新猴王的選擇方法是:讓N只候選猴子圍成一圈,從某位置起順序編號為1~N號。從第1號開始報數,每輪從1報到3,凡報到3的猴子即退出圈子,接著又從緊鄰的下一隻猴子開始同樣的報數。如此不斷迴圈,最後剩下的一隻猴子就選為猴王。請問是原來第幾號猴子當選猴王?
輸入格式:
輸入在一行中給一個正整數N(≤1000)。

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

輸入樣例:

11

輸出樣例:

7

程式碼:

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n;
    scanf
("%d",&n); int a[1000] = {0}; for(int i=0; i<n; i++) a[i]=i+1;//將有效的猴子的位置安排大於0的數 int num=1;//開始判斷猴子的位置當為三就把 當前的位置的猴子的數字改為0 int n1= n; while(n1!=1) { for(int i=0; i<n; i++) { if(a[i]!=0) { a[i]=num; num++
; if(num==4) num=1; if(a[i]==3) { a[i]=0; n1 --; } } } } for(int i=0; i<n; i++)//輸出帶有大於1的數的猴 { if(a[i]!=0) printf("%d "
,i+1); } return 0; }

本次的程式碼的調整了很久
錯誤的原因是沒有把個數n,很計數器n1分開好。