题解 1047: [编程入门]报数问题

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

C语言程序设计教程(第三版)课后习题10.5 (C语言代码)

解题思路:定义一个足够大的数组来存放人员的编号,定义一个变量来延续数组后面的编号!比如:n=3,则数组为{1,2,3};数组足够大的情况下,判断下标+1%3是否等于0;是就把这个下标的元素置0。表达能力不太好。具体的看代码把。标注的挺清楚的。

[编程入门]报数问题的两种解法(一点就会)

该题是著名的约瑟夫算法,这里我提供两种解法------------######一、利用数组```c#includeintmain(){//n为总人数,ko为淘汰的人数,num为开始报数intn,i,a[100],ko=0,num=0;scanf("%d",&n);for(i=0;ia>>b;cout

Kanna-报数问题(循环链表解决法)--C

稍微复杂了点(让空间换时间了)#include#includetypedefstructperson{structperson*next;intnum;}person;//创建节点长度为n的链表并初始化构成循环链表person*initlink(intn){person*head=(person*)m

[编程入门]报数问题-题解(C语言代码)------- 只 需 要 两 部 走 , 就 搞 定 --------

第一步:先人特定的人数进行手拉手,并给每个人一个编号(1,2,3...)实现:建立环形链表第二步:游戏开始,从编号为1的人开始数,每数够三个人则第三个人出列实现:对环形链表进行遍历删除直到剩下一个结点,将结点对应的编号打印就ok!#includestructhum{intid;structhum*ne

[编程入门]报数问题-题解(不需要链路)(C++代码)

对于作者这种小白来说,链路还是比较难理解的,所以作者这里采用了非链路的方法,拓宽思维。原题链接:https://www.dotcpp.com/oj/problem1047.html根据题意我们可以把数组a确定为要排序的数组;把数组b确定为测试数组,用于测试a对应下标的数是否为3。

[编程入门]报数问题-题解(C语言代码)简单易懂,无需链表

题目描述:有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。输入初始人数n,输出最后一人的编号解题思路:1、malloc函数创建数组并把所有的数组元素初始化为1。2、while循环遍历数组:如果有人被点到3,