C++中循环问题,请各位专家帮帮忙。
我是才接触C++的新手,有这么一道题目,我始终是没想通怎么编程,希望各位专家帮忙写出详细的过程,谢谢。
有10只猴子选大王。
方法是:10只猴子按“1-10”编号,并且他们围成一个圈。
首先从1号猴子开始循环“1,2,3”,每数到3,为3的猴子离开,然后从下一只猴子开始重新数“1,2,3”。
猴子不断的离开,只到剩下最后一只猴子,它就是猴子王。
[解决办法]
- C/C++ code
#include<iostream>#define N 10using namespace std;int main(){ int quit=0,number=3,x[N]; for(int y=0;y!=N;y++) x[y]=y+1; int k=0,s=0; while(quit<N-1) { if(x[k]!=0) s++; if(s==number) { x[k]=0; s=0; quit++; } k++; if(k==N) k=0; } int *p=x; while(*p==0) p++; cout<<*p<<"是猴子王"<<endl; return 0;}