C/C++ 猴子選大王
阿新 • • 發佈:2018-12-10
題目描述
有n只猴子,按順時針方向圍成一圈選大王(編號從1到n),從第1號開始報數,一直數到m,數到m的猴子退出圈外,剩下的猴子再接著從1開始報數。就這樣,直到圈內只剩下一隻猴子時,這個猴子就是猴王,程式設計求輸入n,m後,輸出最後猴王的編號。
輸入
每行是用空格分開的兩個整數,第一個是 n, 第二個是 m ( 0 < m,n <=300)。最後一行是:0 0
輸出
對於每行輸入資料(最後一行除外),輸出資料也是一行,即最後猴王的編號。
樣例輸入
6 2 12 4 8 3 0 0
樣例輸出
5 1 7
#include<stdio.h> int main() { int n,m,a[300],i=0,j=0,k=0; while(scanf("%d",&n)!=EOF) { scanf("%d",&m); if(n==0&&m==0) break; else for(i=0;i<n;i++) a[i]=i+1; i=0; j=0; k=0; while(j<n-1) { if(a[i]!=0) k++; if(k==m) { a[i]=0; j++; k=1; } i++; if(i==n) i=0; } i=0; while(a[i]==0) i++; printf("%d\n",a[i]); } }