【C语言】链表——圈中游戏问题(数到3退出)

2023-05-16

问题描述:
有n个人围成一圈,从第1个人开始报数1、2、3,每报到3的人退出圈子。使用链表找出最后留下的人。

分析:
1、用动态链表
2、链表中每个结点的数据域按顺序赋值1、2、3,用指针域连起来。
3、将每数到3的结点删除。

#include <stdio.h>
#include <stdlib.h>

struct PEOPLE{
	int a;
	struct PEOPLE *next;
};

int main()
{
	struct PEOPLE *head=NULL, *p1=NULL, *p2=NULL;
	int n, i;
	
	scanf("%d", &n);
	head = (struct PEOPLE *) malloc (sizeof(struct PEOPLE));	//带头结点的链表
	for(i=1; i<=n; i++)
	{
		p1 = (struct PEOPLE *) malloc (sizeof(struct PEOPLE));
		if(i%3==0) p1->a=3;
		else p1->a=i%3;
		p1->next=NULL;
		if(i==1) head->next=p1;
		else p2->next=p1;
		p2=p1;
	}
	p2->next=head->next;	//循环链表
	
	p1=head;
	p2=p1->next;
	
	for(i=1; ; i++)
	{
		if(i%3==0)
		{
			p1->next = p2->next;
			p2 = p1->next;
		}
		else
		{
			p1 = p1->next;
			p2 = p1->next;
		}
		if(p1==p2) break;
	}
	printf("%d", p2->a);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【C语言】链表——圈中游戏问题(数到3退出) 的相关文章

  • 蓝桥杯05-独立按键的操作

    目录 xff08 一 xff09 1 原理 xff1a 2 思路 xff1a 一般按下某一键 xff0c 以S7为例时 xff0c 用if函数判断是否按下来执行之后的操作 xff08 延时去抖动 xff09 xff08 二 xff09 xf
  • 蓝桥杯07-51单片机的中断系统

    1 中断 xff1a 你正在追电视剧 神雕侠侣 正看得入迷的时候 xff0c 电话响了 xff0c 你暂停电视剧 xff0c 去接电话 xff0c 在接电话的过程中 xff0c 门铃又响了 xff0c 你暂时放下电话 xff0c 去把门打开
  • 蓝桥杯09-PWM脉冲调制的操作

    目录 一 原理 二 设置思路 xff1a 三 题目练习 一 原理 1 脉冲宽度调制 xff08 PWM xff09 是一种对模拟信号电平进行数字编码的方法 通过高分辨率计数器的使用 xff0c 方波的占空比被调制用来对一个具体模拟信号的电平
  • 蓝桥杯10-存储器mm模式写法

    一 概念原理 51 单片机可以外扩 64K 字节的 RAM 和 ROM 空间 xff0c 传统的 8051 单片机具有 16 位地 址总线和 8 位数据总线 xff0c 其中 P0 口作为数据和地址低字节的复用端口 xff0c P2 口作为
  • 蓝桥杯11-DS18B20的原理与使用

    目录 一 原理 二 操作步骤 三 解题思路 四 数据处理 五 实训代码 xff08 检测环境温度 xff09 一 原理 单总线数字温度传感器DS18B20 xff0c 基本是蓝桥杯比赛必考模块 xff0c 所以它的原理是必须要清楚的 工作电
  • 555定时器与频率测量

    一 概述 xff1a 在NE355定时器内部 xff0c 有3个5K的电阻分压 xff0c 故称为555定时器 xff1b xff08 作为信号发生电路 xff09 NET SIG接到P3 4 xff0c 定时器0的计数信号输入引脚 xff
  • 蓝桥杯各个模块总结(参考)

    明天就要比赛了 xff0c 今天总结一份救命模板加深记忆 xff1b 1 24c02的操作 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 24C02单字节写入 61 61 61
  • 如何让你的内网服务器可以被外网访问到(端口映射、NAT、域名解析、IP地址)

    众所众知 xff0c 我们一般情况下是处在私有网段中 xff0c 我们可以访问外网 xff0c 但是外网访问不到我们 如果想要在Internet网上被访问到就需要有一个公网IP 问题1 xff1a 什么是NAT xff08 网络地址转换 x
  • 头歌平台(EduCoder)————软件测试(测试过程与策略)

    第1关 xff1a 测试策略 任务描述 本关任务 xff1a 根据所学知识 xff0c 完成右侧的选择题 相关知识 为了完成本关任务 xff0c 你需要掌握软件测试的测试策略 第2关 xff1a 测试过程 任务描述 本关任务 xff1a 根
  • 使用vscode下载插件在线打开html界面,解决没有Open in default brower选择问题

    前言 今天刚下载的vscoode xff0c 写了一个html不知道怎么通过vscode打开 问了下百度 xff0c 说需要选择Open in default brower 但是我鼠标右键后并没有找到 Open in default bro
  • Wsl设置图形界面

    文章目录 Wsl设置图形界面原理步骤启动 Wsl设置图形界面 目前 xff0c Wsl尚未正式支持图形显示 xff08 预览版已经有该功能 xff09 为了使用图形界面 xff0c 可以使用Xserver 原理 Xorg使用客户端 服务器模
  • pytest之常用插件

    文章目录 pytest常用的插件有哪些pytest ordering 用法pytest xdist 用法 pytest常用的插件有哪些 pip install pytest span class token operator span or
  • 如何将自己的python代码打包成库,可以让别人使用pip安装调用?

    大家好 xff0c 本文是解决如何将自己的python代码建成一个python库 xff0c 可以让任何人都能pip install lt 库名 gt 使用 xff0c 亲测有效 xff01 前期准备 xff1a 1 创建PyPI用户 Py
  • javascript中本地储存、离线缓存、地理定位、网络状态

    本地储存 xff1a 实际开发中某些内容是不需要放到服务器中 xff0c 而是放到了浏览器中 xff0c 需要的时候可以快速的访问 xff0c 甚至页面刷新也可能不会丢失数据 xff0c 容量较大 xff1b 这里介绍两种数据存储方式 xf
  • 二、nginx添加header

    一 添加header 解释 xff1a nginx添加header比较简单 xff0c 如下 格式 xff1a add header header的名称 header的内容 例如 xff1a add header Cache Control
  • ffmpeg叠加透明通道

    ffmpeg i in mp4 i x mov filter complex 34 0 1 overlay 61 alpha 61 1 34 y output mp4
  • 三门问题-概率学习-蒙特卡洛模拟验算

    三门问题 参赛者会看见三扇关闭了的门 xff0c 其中一扇的后面有一辆汽车 xff0c 选中后面有车的那扇门可赢得该汽车 xff0c 另外两扇门后面则各藏有一只山羊 当参赛者选定了一扇门 xff0c 但未去开启它的时候 xff0c 节目主持
  • Linux 路由表解密:详解路由表的构成与作用

    Linux是一种开源的操作系统 xff0c 自由软件 xff0c 使用范围非常广泛 Linux中有一个非常重要的功能 xff0c 就是路由表 路由表是一张表格 xff0c 用来描述网络中各个主机之间的连接关系 在Linux中 xff0c 路
  • Supervisor 之部署

    介绍 supervisor可以对进程进行监管 xff0c 当进程挂掉 xff0c 可以对进程进行重启 xff0c 不用编写额外的脚步进行控制 名词 supervisor xff1a 安装的软件的名称 supervisord xff1a 装好
  • 可变长度参数的应用方式

    va list 直接函数定义 va list是编译器内嵌的一种函数 typedef builtin va list gnuc va list typedef gnuc va list va list int dbg print const

随机推荐

  • 详解项目中使用dotPeek调试源码

    一 简介 说到 debug 源码 xff0c 许多很多搞开发的小伙伴都会异常的兴奋 xff0c 这也是像上成长的毕竟之路 调试源码方式通常有两种 xff1a 一是有了源代码 xff0c 也有了 pdb 文件 二是借助第三方工具 xff0c
  • 笔记本电脑如何通过HDMI连接屏幕进行投影

    1 使用HDMI xff08 高清多媒体接口 xff0c High Definition Multimedia Interface xff09 连接笔记本电脑 2 在电脑桌面空白处右键点击 显示设置 3 在 多显示器 的下拉列表中选择 复制
  • 一款Java开源的Springboot即时通讯 IM,附源码

    开篇 电商平台最不能缺的就是即时通讯 xff0c 例如通知类下发 xff0c 客服聊天等 今天 xff0c 就来给大家分享一个开源的即时通讯系统 如对文章不感兴趣可直接跳至文章末尾 xff0c 有获取源码链接的方法 但文章内容是需要你简单的
  • dpkg 命令使用说明

    dpkg是一个debian包管理工具 能够对包进行安装 卸载 获取信息等操作 用法 xff1a 安装 xff08 解包并配置 xff09 xff1a dpkg i package file dpkg install package file
  • ubantu开启FTP使用 FileZilla与windows文件互传(图文教程)

    平台 xff1a VMware Workstation 16 Pro iso镜像 xff1a ubuntu 22 04 1 desktop amd64 iso 第一步 xff1a 先打开终端 第二步 xff1a 分别输入下面两条代码 xff
  • 虚拟机Ubuntu20.04安装NVIDIA显卡驱动失败原因

    本来想在ubuntu里使用Tensorflow的GPU版 但是按照一系列操作 xff0c 在处理显卡驱动问题的时候 xff0c 出现下图报错 xff1a 后来查到虚拟机不支持显卡驱动 xff0c 显卡不支持虚拟化 xff0c 所以不能用Te
  • C语言练习:输入一个十进制将其转换成八进制和十六进制

    文章目录 前言一 题意二 代码1 代码的实现2 读入数据 总结 前言 输入一个十进制将其转换成八进制和十六进制本题是在C语言中较为常见的问题 xff01 一 题意 在C环境中输入一个十进制数 xff0c 在结果中第一行输出8进制数第二行输出
  • 本第包含与远程包含--学习篇

    1 什么是文件包含 用一句话来说就是 xff0c 文件包含不是漏洞 xff0c 但是由于对包含进行的文件不可控 xff0c 导致了文件包含漏洞的产生 文件包含分为两种 1 本地文件包含LFI xff08 包含本地文件操控LFI xff09
  • Ubuntu20.04安装Java JDK

    1 官网下载 https www oracle com java technologies downloads java8 根据自己系统配置信息下载对应安装包 xff0c 常见的的Linux系统 xff0c Ubuntu下载后缀为 tar
  • Ubuntu获取文件路径

    1 可视化界面查看 xff08 ctrl 43 L xff09 可视化界面查看ubuntu默认的快捷键是ctrl 43 L xff0c 直接按下快捷键 xff0c 如图路径显示出来了 2 直接在终端输入pwd
  • 关于跨平台 UI 的思考

    一 xff1a 跨平台 xff0c 这里的跨平台 xff0c 指的是 xff1a Windows Linux MacOS IOS Andriod 二 xff1a 跨平台 xff0c 首先大家想到的是 Java 虽然众多平台都支持 Java
  • Ubuntu20.04安装IntelliJ IDEA2022步骤

    1 下载linux版本的idea 链接地址 xff1a IntelliJ IDEA The Capable amp Ergonomic Java IDE by JetBrains 2 解压到自己的路径下 在 usr local 路径下新建安
  • Debian 11 搭建fabric版本1.4的环境

    建议以下所有过程皆在root权限下进行 xff0c 否则在sudo权限切换的过程中会出现很多环境变量的问题 1 搭建Fabric的前置条件 1 1安装GOLANG Debian 11 安装部署 Go 和设置环境变量 1 2安装Docker
  • 如何用脚本自动生成httpd容器

    要用脚本自动生成httpd容器 xff0c 首先需要安装Docker 然后 xff0c 你可以编写一个简单的脚本来创建httpd容器 以下是一个示例脚本 xff1a bin bash 定义变量 name 61 34 my httpd 34
  • 如何用脚本自动生成多个httpd容器

    使用 96 crontab 96 来定时执行脚本 96 crontab 96 是一种在Unix和类Unix系统上自动定时执行命令或脚本的程序 你可以编辑你的 96 crontab 96 文件 xff0c 然后在该文件中添加定时执行脚本的条目
  • Microsoft Visual C++ 14.0 or greater is required的解决方法

    用pip去安装Python第三方库的时候 xff0c 安装不成功 xff0c 遇到问题 xff0c 提示有 error Microsoft Visual C 43 43 14 0 or greater is required Get it
  • ansible安装部署以及常用模块解析使用

    ansible安装部署 1 配置阿里云的eple源 我们使用yum命令安装ansible xff0c 需要阿里云的eple源 阿里云eple源下载地址 也可以通过下面命令获取 epel RHEL 8 centos8版本按照如下配置 1 xf
  • 使用rancher的rke2部署高可用的k8s集群

    目录 1 linux环境初始化及内核调优 xff08 1 xff09 设置主机名 关闭防火墙 配置集群ip映射 关闭selinux xff08 2 xff09 禁用linux的透明大页 标准大页 xff08 3 xff09 禁用swap分区
  • SPI总线

    1 spi总线简介 xff1a SPI xff08 Serial Peripheral Interface xff09 是串行外设接口的缩写 xff0c SPl是一种高速的 全双工 同步的串行通信总线 xff1b SPl采用主从 方式工作
  • 【C语言】链表——圈中游戏问题(数到3退出)

    问题描述 xff1a 有n个人围成一圈 xff0c 从第1个人开始报数1 2 3 xff0c 每报到3的人退出圈子 使用链表找出最后留下的人 分析 xff1a 1 用动态链表 2 链表中每个结点的数据域按顺序赋值1 2 3 xff0c 用指