当前位置: 首页 > news >正文

18063 圈中的游戏

### 思路
1. 创建一个循环链表表示围成一圈的 n 个人。
2. 从第一个人开始报数,每报到 3 的人退出圈子。
3. 重复上述过程,直到只剩下一个人。
4. 输出最后留下的人的编号。

### 伪代码
1. 创建一个循环链表,节点表示每个人的编号。
2. 初始化当前节点为第一个人。
3. 循环直到链表中只剩下一个节点:
   - 报数到 3 时,删除当前节点。
   - 移动到下一个节点。
4. 输出最后剩下的节点的编号。

### C++代码

#include <iostream>
using namespace std;struct Node {int data;Node* next;Node(int val) : data(val), next(nullptr) {}
};int findLastPerson(int n) {// 创建循环链表Node* head = new Node(1);Node* prev = head;for (int i = 2; i <= n; ++i) {prev->next = new Node(i);prev = prev->next;}prev->next = head; // 形成循环链表Node* current = head;Node* previous = prev;while (current->next != current) {// 报数到3,删除当前节点for (int i = 1; i < 3; ++i) {previous = current;current = current->next;}previous->next = current->next;delete current;current = previous->next;}int lastPerson = current->data;delete current;return lastPerson;
}int main() {int n;cin >> n;cout << findLastPerson(n) << endl;return 0;
}

http://www.lryc.cn/news/438987.html

相关文章:

  • 【Spring Boot】SpringBoot自动装配-Import
  • C++:opencv计算轮廓周长--cv::arcLength
  • 探索学习Python的最佳开发环境和编辑器
  • 【Pycharm】Pycharm创建Django提示pip版本需要升级
  • 模拟退火算法(SA算法)求解实例---旅行商问题 (TSP)
  • 衡石分析平台使用手册--替换衡石 metadb
  • 【Unity学习心得】如何制作俯视角射击游戏
  • 【资料分析】常见的坑
  • GitLab权限及设置
  • 算法练习题24——查找杨辉三角中的组合数
  • string类的模拟实现
  • 如何训练机器学习力场
  • AI创作新手册:精通Prompt提示词的提问策略
  • gingivitis
  • 开源 AI 智能名片小程序:开启内容营销新境界
  • p12docker 进入容器的命令和拷贝的命令
  • 代码随想录Day 45|leetcode题目:115.不同的子序列、583. 两个字符串的删除操作、72. 编辑距离
  • 浮点数在内存中的存储详解(超详细)
  • Maven下载安装
  • Qt:Q_GLOBAL_STATIC实现单例(附带单例使用和内存管理)
  • URL.createObjectURL 与 FileReader:Web 文件处理两大法宝的对比
  • 零基础考过软考信息系统项目管理师经验分享
  • 机器学习课程学习周报十二
  • python多线程程序设计 之二
  • k8s用StatefulSet部署redis
  • flink on k8s
  • Java集合(八股)
  • python+adb
  • AIGC文本生成
  • 系统架构设计师教程 第5章 5.4 软件测试 笔记