首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

什么?奥数题只需三步轻松搞定

点击“公众号”可以订阅哦!

奥数题:圆周上放置有2016枚棋子,按顺时针方向依次编号为1,2,3,...,2015,2016。首先取走2号棋子,然后按顺时针方向,每隔两枚棋子就取走1枚棋子,直到圆周上仅仅剩下2枚棋子为止,问:剩下2枚棋子的编号是多少?

01

对于数学天才这都不是事,奈何咱是数学渣渣,只能望洋兴叹——这哪是人做的题~~~~

不过,利用Scratch只需三步就能轻松解决到这道奥数题。

02

利用链表模拟圆周上的棋子

利用变量只能表示一个数,而利用链表可以表示一串数字,那么如何向链表中批量的添加数字呢?

Q

&

A

那还不简单,点击链表左下角的“+”,一个个输入。

Q

A

&

我的天,2016个数字,我得添加到什么时候。

手动输入是需要勇气的,小花猫可没那样的毅力,他灵机一动,想到了利用循环的方法向链表中添加数字。

做法步骤:

1

新建变量i,链表arr

2

将变量i设为0

3

将变量i增加1

4

将变量i插入链表arr末尾

5

重复执行3、4直到i=2016

例举数字,发现规律

从链表的结构,我们可以发现链表是线性结构,并不能直接模拟出题目中的圆形闭合的情况。但我们可以利用变量i表示链表的项数通过改变变量i的值,从而模拟环形闭合

为了能较好的找到规律,假设棋盘上有10枚棋子,变量i值设定为0,链表长度L=10,分析如下图。图片较长耐心查看。

编写、调试程序

根据上述的分析,就可以着手程序的编写了,在编写程序中你将会用到链表操作的一些命令,直到型循环和条件判断等命令。

最后,编写完成程序,记得调试,直到成功运行,一定要有耐心、细心,多一个心眼,少一点马虎,提高编程效率、成功率。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180215G0F0KC00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券