首页 > 其他分享 >实验8-1-8 报数:有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位

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

时间:2024-08-11 19:52:09浏览次数:15  
标签:count arr 凡报 第几 int digit ++ 报数

一、题目要求:

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

二、解题思想:

解法:
1.定义一个很大整形数组,以及一个当前要喊的数字变量(变化范围是1~3)
2.给数组中非3位置进行赋值 - - 赋值要喊的数字
3.到达数组末尾,则从数组起始位置继续开始
4.直到数组中只有一个位置非3,则结束

假设有5个人报数:
在这里插入图片描述

三、输入:

5

四、输出:

最后留下的人是4号

五、程序:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	int count;//总人数
	int arr[128];//记录每个人喊得号
	int digit = 1;//要喊得号
	printf("请输入总人数:");
	scanf("%d", &count);
	int remain=count;//剩余人数
	while (remain > 1)
	{
		for (int i = 0; i < count; i++)
		{
			if (arr[i] == 3)continue;
			arr[i] = digit;
			if (digit == 3)
			{
				digit = 0;
				remain--;
			}
			digit++;
		}
	}
	for (int i = 0; i < count; i++)
	{
		if (arr[i] != 3)
		{
			printf("最后留下的人是%d号\n", i + 1);
		}
	}
	//for (int i = 0; i < count; i++)
	//{
	//	printf("%d ", arr[i]);
	//}
	return 0;
}

六:运行效果

在这里插入图片描述

标签:count,arr,凡报,第几,int,digit,++,报数
From: https://blog.csdn.net/weixin_52249641/article/details/141110494

相关文章

  • 报数[P7960]
    题目题目链接报数游戏是一个广为流传的休闲小游戏。参加游戏的每个人要按一定顺序轮流报数,但如果下一个报的数是 77 的倍数,或十进制表示中含有数字 77,就必须跳过这个数,否则就输掉了游戏。在一个风和日丽的下午,刚刚结束SPC20nn比赛的小r和小z闲得无聊玩起了这个报数......
  • 13个人报数数到3退出最后剩谁
    #include<stdio.h>#include<math.h>#include<string.h>#include<stdlib.h>structMan{intnum;structMan*next;};voidLastRemain(intnum,intcount);intmain(){LastRemain(13,3);}voidLastRemain(intnum,intcount){......
  • 【每周例题】力扣 C++ 一年中的第几天
    一年中的第几天题目一年中的第几天 思路分析1.substr函数分割字符串,stoi函数将字符串转为十进制stoi函数介绍substr函数介绍2.判断是否为闰年,如果是闰年,则二月的天数+1代码#include<bits/stdc++.h>usingnamespacestd;intmain(){ intmonths[13]={0,31,28,3......
  • 指针练习N个人报数,每报到3的人出局
    #include<stdio.h>#include<math.h>voidRound(int*arr,intn);voidSearchLast(int*arr,intn);intmain(void){intarr[4];Round(arr,4);SearchLast(arr,4);}voidRound(int*arr,intn){intflag=n;inti=0;for(i=0;i<n;i++)/......
  • jQuery获取当前元素是该父元素的第几个元素&获取父元素的第n个子元素
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Document</title></head><body><ul><li>第一个元素</li><li>第二个元素<......
  • MySQL夺命16问,你能坚持到第几问(转)
    原文:https://zhuanlan.zhihu.com/p/5344154091、数据库三大范式是什么?**第一范式:每个列都不可以再拆分。第二范式:在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。第三范式:在第二范式的基础上,非主键列只依赖于主键,不依赖于其他非主键。在设计数据库结......
  • 计算今天是该年的第几天(c语言实现)
    遇到一个有意思的编程题,使用C语言实现计算今天是该年的第几天。实现代码如下:#include<stdio.h>intd[12]={31,28,31,30,31,30,31,31,30,31,30,31};//将每月天数存在数组中(类似字典)intadd(intmonths,intflag,intdays)//计算天数{intnum=0,i=0;if(flag>0)//......
  • C语言之计算某日是该年的第几天
    目录一简介二代码实现三时空复杂度一简介 在C语言中,计算某日是该年的第几天通常涉及以下步骤:判断输入的年份是否为闰年。根据判断结果,确定当年二月的天数(28或29天)。然后,根据月份从前几个月开始累计天数。二代码实现以下是一个简单的C语言函数示例,它接收一......
  • Java解决一年中的第几天
    Java解决一年中的第几天01题目给你一个字符串date,按YYYY-MM-DD格式表示一个现行公元纪年法日期。返回该日期是当年的第几天。示例1:输入:date="2019-01-09"输出:9解释:给定日期是2019年的第九天。示例2:输入:date="2019-02-10"输出:41提示:date.length=......
  • 破链成环-acwing第131场周赛-奶牛报数
    5364.奶牛报数-AcWing题库有 n 头奶牛,围成一圈,顺时针依次编号为 1∼n。其中,第 i 头奶牛的重量为 ai。现在,我们需要选择一头奶牛,并从该奶牛开始,所有奶牛按照顺时针的顺序进行 1∼n报数。报数完毕后,所有报出的数在 [l,r)范围内的奶牛,会被选中制作牛肉。我们希......