有n只猴子,按顺时针围成一圈选大王(编号从1到n),从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1开始报数。就这样,直到圈内只剩下一只猴子,这个猴子就是猴王。编程求输入n,m后,输出最后猴王的编号。
#include <bits/stdc++.h> 1. using namespace std; 2. int n,m,a[1010]; 3. int houzi(int n,int m) 4. { 5. for(int i=0;i<n;i++) a[i]=(i+1)%n; 6. int s=n-1,c=0; 7. while(c<n-1) 8. { 9. for(int j=0;j<m-1;j++) 10. s=a[s]; 11. _______(1)_________; 12. c++; 13. } 14. cout<<_____(2)_______<<endl; 15.} 16.int main() 17.{ 18. cin>>n>>m; 19. houzi(n,m); 20.}
1)第1空的答案为________
A. a[s]=a[s]+1 B. a[s]=(a[s]+1)%n C. a[s]=a[a[s]] D. a[s]=a[(a[s]+1)%n]
2)第2空的答案为________
A. a[s] B. a[s]+1 C. a[s]-1 D. (a[s]+1)%n
3)输入12和6,则输出为______
A. 2 B. 3 C. 4 D. 5
4)上述代码,采用的是_______链表
A. 单向 B. 双向 C. 单向循环 D. 双向循环
5) 把第5行代码改为“for(int i=0;i<n;i++) a[i]=i+1;”,对运行结果没有影响?______
A. 有影响 B. 没有影响