【C语言】P291 5.有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数)凡报到3的人退出圈子,问最后留下的是原来第几号的那位

这篇具有很好参考价值的文章主要介绍了【C语言】P291 5.有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数)凡报到3的人退出圈子,问最后留下的是原来第几号的那位。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

P291 5.有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数)
凡报到3的人退出圈子,问最后留下的是原来第几号的那位

 方法一:使用数组

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main() {
	int a[50] = { 0 };
	int n = 0;//人数
	int count = 0;//报数(1-3)
	int m = 0;//退出的人数
	int last = 0;//最后留下的人的号码
	int i = 0;
	printf("请输入总人数:");
	scanf("%d", &n);
	for (i = 0; i < n; i++) {
		a[i] = 1;//当a[i]=1时,(i+1)号还在圈里面
	}
	while (m < n) {
		for (i = 0; i < n; i++) {
			if (a[i] == 1) {
				count++;//开始报数
				if (count % 3 == 0) {
					a[i] = 0;//i+1号退出
					m++;//退出的数量
					count = 0;
					last = i + 1;
				}
			}
		}
	}
	printf("最后留下的是原来第%d号\n", last);
	return 0;
}

 运行结果:

有n个人围成一圈顺序排号csdn,java,数据结构,算法 

 文章来源地址https://www.toymoban.com/news/detail-761912.html

 方法二:使用指针

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main() {
	int i, k, m, n, num[50], * p;
	printf("请输入人数:");
	scanf("%d", &n);
	p = num;
	for (i = 0; i < n; i++) {
		*(p + i) = i + 1;
	}
	i = 0;
	k = 0;
	m = 0;
	while (m < n - 1) {
		if (*(p + i) != 0) {
			k++;	
		}
		if (k == 3) {
			*(p + i) = 0;
			k = 0;
			m++;
		}
		i++;
		if (i == n) i = 0;
	}
	while (*p == 0) p++;
	printf("最后留下的人是第%d号\n", *p);

	return 0;
}

运行结果:

有n个人围成一圈顺序排号csdn,java,数据结构,算法

 

到了这里,关于【C语言】P291 5.有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数)凡报到3的人退出圈子,问最后留下的是原来第几号的那位的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python-将矩阵转化成一列

    在进行实际的案例开发过程中,我们经常用到矩阵、数组,而对于这两者学习变得至关重要。在学习矩阵及相关数组的操作过程中,不像matlab那么方便直接操作就可以了,而是需要进行导库才可以进行操作,python主要的学习数组和矩阵的库有 numpy ,numpy中的矩阵库为 numpy.ma

    2024年02月16日
    浏览(39)
  • 【语音采集】语音信号采集【含GUI Matlab源码 291期】

    获取代码方式1: 完整代码已上传我的资源:【语音采集】基于matlab GUI语音信号采集【含Matlab源码 291期】 点击上面蓝色字体,直接付费下载,即可。 获取代码方式2: 付费专栏Matlab语音处理(初级版) 备注: 点击上面蓝色字体 付费专栏Matlab语音处理(初级版) ,扫描上面

    2024年02月20日
    浏览(48)
  • OpenCV将两张图片拼接成一张图片

    可以用opencv或者numpy的拼接函数,直接将两张图拼接到一起,很简单方便,参考代码2, 推荐此方式 。 新建图片,将两张图片的像素值填充到新图片对应位置上即可,参考代码1。 以下是将两张图片拼接成一张图片的示例代码: 以下是将两张图片在同一个窗口显示的示例代码

    2024年02月04日
    浏览(49)
  • PostgreSQL:string_agg 多列值聚合成一列

    string_agg 是PostgreSQL中的一个聚合函数,用于将一组值连接为一个字符串。它接受两个参数:要连接的值和连接符。 语法如下: 其中, expression 是要连接的值的表达式,可以是列名、常量或表达式; delimiter 是用于分隔连接的字符串。 string_agg 通常结合 GROUP BY 子句一起使用,

    2024年02月14日
    浏览(39)
  • 【C语言14】C语言实现顺序表(这可能是CSDN有史以来讲解最详细的顺序表)

    官方定义:顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素

    2024年02月16日
    浏览(43)
  • C语言实现顺序表

    线性表是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串… 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的, 线性表在物理上存储时,通常

    2024年02月10日
    浏览(43)
  • 顺序表 --- C语言实现

      目录 1.线性表 2.顺序表 2.1 概念和结构 2.2 接口实现 2.3 数组相关面试题 2.4 顺序表的问题及思考 什么是线性表 : 线性表(linear list)是n个 具有相同特性 的 数据元素 的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串

    2024年02月15日
    浏览(39)
  • C语言—顺序表详解

      顺序表,全名顺序存储结构,是线性表的一种。通过《什么是线性表》一节的学习我们知道,线性表用于存储逻辑关系为“一对一”的数据,顺序表自然也不例外。 不仅如此,顺序表对数据的物理存储结构也有要求。顺序表存储数据时,会提前申请一整块足够大小的物理空

    2024年01月25日
    浏览(38)
  • C语言进阶|顺序表

    线性表(linear list) 是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使 用的数据结构,常见的线性表: 顺序表、链表、栈、队列、字符串.. 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的, 线性表在物理

    2024年04月11日
    浏览(29)
  • python将多张图片拼成一张矩阵图,合成一张大图

    引言 环境准备 代码实现 效果演示 总结 在图像处理和图像展示的应用中,将多张图片排列成一个图像矩阵图是一个常见的需求。本博客介绍如何使用Python实现将12张图片排列成n*m的图像矩阵图。 为了实现这个目标,我们需要安装Pillow库。Pillow是Python中一个强大的图像处理库

    2024年02月14日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包