宝鸡市网站建设_网站建设公司_前端开发_seo优化
2025/12/23 17:00:17 网站建设 项目流程

2025年湖南大学计算机考研复试机试真题

2025年湖南大学计算机考研复试上机真题

历年湖南大学计算机考研复试上机真题

历年湖南大学计算机考研复试机试真题

更多学校题目开源地址:https://gitcode.com/verticallimit1/noobdream

N 诺 DreamJudge 题库:输入 “学校名称” 即可筛选该校历年机试真题,题目均在考纲范围内,按难度自动排序。还可搭配《计算机考研机试攻略》刷题,书中题目可通过题号直接在题库中查找。

猴子报数

题目描述

Time Limit: 1000 ms
Memory Limit: 256 mb

n个猴子围坐一圈并按照顺时针方向从1到n编号,从第s个猴子开始进行1到m的报数,报数到第m的猴子退出报数,从紧挨它的下一个猴子重新开始1到m的报数,如此进行下去知道所有的猴子都退出为止。求给出这n个猴子的退出的顺序表。

输入输出格式
输入描述:

有做组测试数据.每一组数据有两行,第一行输入n(表示猴子的总数最多为100)第二行输入数据s(从第s个猴子开始报数)和数据m(第m个猴子退出报数).当输入0 0 0时表示程序结束.

输出描述:

每组数据的输出结果为一行,中间用逗号间隔。

输入输出样例
输入样例#:
10 2 5 5 2 3 0 0 0
输出样例#:
6,1,7,3,10,9,2,5,8,4 4,2,1,3,5

代码一

  1. class node:
  2. def __init__(self, value):
  3. self.value = value
  4. self.next = None
  5. while True:
  6. try:
  7. n = int(input())
  8. s,m = map(int, input().split())
  9. if n == 0 and s == 0 and m == 0:
  10. break
  11. head = node(1)
  12. curr = head
  13. for i in range(2, n + 1):
  14. curr.next = node(i)
  15. curr = curr.next
  16. curr.next = head
  17. while curr.value != s:
  18. curr = curr.next
  19. # print(curr.value)
  20. res = []
  21. for i in range(n):
  22. for j in range(m - 2):
  23. curr = curr.next
  24. res.append(str(curr.next.value))
  25. curr.next = curr.next.next
  26. curr = curr.next
  27. print(','.join(res))
  28. except:
  29. break

代码二

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int main()
  4. {
  5. int n;
  6. while(cin >> n)
  7. {
  8. int s, m;
  9. cin >> s >> m;
  10. //从第s个开始报数 1到m的报数
  11. if(n == 0 && s == 0 && m == 0) break;
  12. vector<int> num;
  13. for(int i = 1; i <= n; i++)
  14. {
  15. num.push_back(i);
  16. }
  17. vector<bool> vis(n, false);
  18. vector<int> res;
  19. int cur = s - 1;
  20. while(n--)
  21. {
  22. int cnt = 0;
  23. //cout << "n: " << n << endl;
  24. while(true)
  25. {
  26. //没出去可以进来数 数到要的数字就退出
  27. if(!vis[cur])
  28. {
  29. cnt++;
  30. if(cnt == m)
  31. {
  32. vis[cur] = true;
  33. res.push_back(num[cur]);
  34. break;
  35. }
  36. }
  37. cur = (cur + 1) % num.size();
  38. }
  39. }
  40. int i = 0;
  41. for( ; i < num.size() - 1; i++)
  42. {
  43. cout << res[i] << ",";
  44. }
  45. cout << res[i] << endl;
  46. }
  47. return 0;
  48. }

代码三

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main(){
  4. int n,s,m;
  5. while(cin>>n>>s>>m){
  6. if(!n && !s && !m) break;
  7. vector<int> a(n);
  8. for(int i=0;i<n;i++) a[i]=i+1;
  9. s-=1;m-=1;
  10. while(a.size()>1){
  11. s=(s+m)%a.size();
  12. cout<<a[s]<<",";
  13. a.erase(a.begin()+s);
  14. }
  15. cout<<a[0]<<endl;
  16. }
  17. return 0;
  18. }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询