题解 1770: [编程入门]链表之报数问题

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

筛选

[编程入门]链表之报数问题 (C语言代码)链表解法

解题思路:1)先创建一个最简单的链表。2)利用for()循环来给每一个链表赋值3)循环遍历,每循环一次就给链表二次赋值,并把值是3的链表的值置0,再重复遍历循环4)最后遍历链表,把链表中的值不是0的输出注意事项:注意在给二次赋值为3的时候,要把总数-1,并且把二次赋值置零。

[编程入门]链表之报数问题-题解——方法简单,代码简洁(C语言代码)

######解题思路:1、首先,需要考虑的问题是要不要头结点?显然,要一直循环的话,肯定是不要头结点的2、链表的数据域放什么数我一开始想的是123,但是后来想了想,最后剩下的肯定是一个结点,显然数据域放上序号更合适3、需要哪些变量每数到3就得删除一个结点,

没学链表,但学好循环和数组照样能解决问题

解题思路:创建一个数组,根据输入的人数往数组中存放每个人的编号,虽然没办法直接删除数组中的元素,但编号是从1开始的,也就是说当报数到3的时候,可以通过将那个编号变为0的方式达到退出的效果(变为其他数也行,不和编号冲突就没问题),当数组中只剩下一个非0的数时,那个数就是最后留下来的人的编号。