学而思/奥数翻杯子问题的解法
翻杯子问题是奥数中的一个经典题型,大致问题就是如下所示:
这种题变化很多,其实也是有规律的,如果小朋友实在学不会,可以试试下面的公式
假设杯子的个数是N个,每次翻M个,那么最少全部翻过来的次数是X次,则公式如下:
上来第一步,先判断奇偶性:
一,如果N为奇数,M为偶数,则X是不存在的。为什么呢?一个杯子想要被翻过来,其被翻的次数一定是奇数次,那么N为奇数的情况下,所有杯子总共被翻的次数就是奇数个奇数相加,结果还是个奇数,而奇数是无法整除M这个偶数的,所以这种情况无法完成目标。
二,排除掉第一条,我们来看几种不同的情况:
2.1,N为M的整数倍,这个最简单,X=N/M,这个很好理解吧
2.2,N=M+1,这个第二简单,X=N,就是轮着翻,相当于每次翻一个
2.3,N>2M,也就是每次翻的数量不到总数的一半,这时怎么算呢,也是有公式的,因为我们需要一个杯子被翻奇数倍,所以就从每个杯子翻一次开始算,需要满足一个条件就是:所有杯子总共翻的次数要能够被每次翻的杯子数整除,于是就是先把其中一个杯子从1次变3次,总次数加2,再不行就两个杯子变3次,总次数加4,以此类推,也就是先用N/M,看能否整除,如果不能,就用(N+2)/M,还不行就用(N+4)/M,直到能够整除,而整除之后这个商,就是最终的次数,比如8个杯子每次翻3个,8/3不行,10/3不行,12/3=4可以,所以答案就是4。
2.4,N<2M,也就是每次翻的数量超过总数的一半了,这时又相对简单了,记住就行了:
2.4.1,N与M奇偶性相同,翻3次搞定
2.4.2,N为偶而M为奇,翻4次搞定
至此所有情况都已列举完毕,记住,一定要按照从前往后这个顺序判断,不能用单一方法计算。
可以尝试下1~9个杯子的不同情况,如下表
最后,附送一个思维导图,一图搞定
如果小朋友学过编程,也可以用编程的思想来描述这个解法,编程思想非常好的解释了这个过程,即你必须顺序执行这个程序,而不能使用中间的某一个判别条件:
题目:N个杯子,每次翻M个,最少X次翻完,求X
如果:N为奇数 且 M为偶数那么:X不存在,程序结束
如果:N=M的整数倍那么:X=N/M
如果:N=M+1那么:X=N
如果:N>2M那么:X=循环执行(N=N+2,N/M,结果为整数)
如果:N<2M如果:N和M奇偶性相同那么:X=3如果:N和M奇偶性不同那么:X=4
程序结束
学而思/奥数翻杯子问题的解法相关推荐
- 过桥问题c语言代码大全,学而思奥数网奥数专题(行程问题)火车过桥c.pdf
学 而 思 奥 数 网 奥 数 专 题 ( 行 程 问 题 ) 1.四年级行程问题:火车过桥 难度:难度 某列火车通过 342 米的隧道用了 23 秒,接着通过 234 米的隧道用了 17 秒,这列火 ...
- 学奥数到底对中小学生的思维有帮助吗?
今天的文章取材于"知乎",总结了部分奥数老师.有奥数经验的学生,以及学奥数孩子的家长们比较理性的讨论. 一.什么是奥数?奥数竞赛的目的是什么? 国际奥林匹克数学竞赛(IMO)是 ...
- 一道小学奥数题的编程解法
一道小学奥数题的编程解法 这是一道小学奥数题,看到这一题后如果只给我笔和纸,我真的无从下手,不知怎么去把这些方框填出来.但借助编程,这道题就非常简单了.直接送上代码. C++程序代码 #include ...
- c语言 奥数题目及答案,小学奥数题C语言解法
朋友给我发了一个小学的奥数题,尝试解了一会儿没有找到方法,于是编辑了一个小程序解决了 上面的是题目 下面的是实现的代码,仅做参考 #include #ifdef __cplusplus extern ...
- 被妖魔化的奥数,到底该怎么学?
作为普通数学的升级训练,奥林匹克数学竞赛(奥数)有着竞赛的光环加成,从海淀黄庄的培训班到国际奥数竞赛中的华人面孔,这一学科在近些年来从不缺少大众关注.由于难度相对高,奥数一直被认作是精英的学科,有不低 ...
- 信息学奥赛一本通 1405:质数的和与积 | OpenJudge NOI 2.1 7827:质数的和与积 | 小学奥数 7827
[题目链接] ybt 1405:质数的和与积 OpenJudge NOI 2.1 7827:质数的和与积 OpenJudge NOI 小学奥数 7827:质数的和与积 [题目考点] 1. 枚举 [解题 ...
- 信息学奥赛一本通 1101:不定方程求解 | OpenJudge NOI 2.1 7650 | 小学奥数 7650
[题目链接] ybt 1101:不定方程求解 OpenJudge NOI 2.1 7650:不定方程求解 OpenJudge NOI 小学奥数 7650:不定方程求解 [题目考点] 1. 枚举 [解题 ...
- 信息学奥赛一本通 1084:幂的末尾 | OpenJudge NOI 小学奥数 7833
[题目链接] ybt 1084:幂的末尾 OpenJudge NOI 小学奥数 7833:幂的末尾 [题目考点] 1. 同余定理 根据同余定理,有: (a∗b)%m=(a%m∗b%m)%m(a*b)\ ...
- 信息学奥赛一本通 1083:计算星期几 | OpenJudge NOI 小学奥数 7831
[题目链接] ybt 1083:计算星期几 OpenJudge NOI 小学奥数 7831:计算星期几 [题目考点] 1. 同余定理 根据同余定理,有: (a∗b)%m=(a%m∗b%m)%m(a*b ...
最新文章
- TClientDataSet[28]: 读写其他格式的 XML 文件
- 在Eclipse中搭建Python开发环境之三新建python 提示django not found
- html修改原生checkbox选中的颜色_[三分钟小文]前端性能优化-HTML、CSS、JS部分
- Group Box组合框的简单使用 [大三TJB_708]
- 什么是计算机应用上机报告,计算机应用实验报告样本.doc
- leveldb java实例_EZDB首页、文档和下载 - LevelDB 的 Java 封装 - OSCHINA - 中文开源技术交流社区...
- JS新手入门自学笔记
- TensorFlow基础篇(六)——tf.nn.max_pool()和tf.nn.avg_pool()
- 选择数据分析工具应考虑4个因素
- python数据库操作批量sql执行_Python批量修改数据库执行Sql文件
- python模块分析之typing(三)
- 【CSDN最全java项目实战500篇】练手/项目经验/毕设刚需
- Matlab 2016 超详细安装教程
- 13.3.4 蓝牙程序案例: 蓝牙串口调试助手
- Go语言后端开发技术栈
- Bootstrap broker localhost9092 (id -1 rack null) disconnected
- android studio 扣费白屏,详解一次Vue低版本安卓白屏问题的解决过程
- 纯html5的树形菜单,一个简单的js树形菜单
- linux 网络慢 dns,Linux DNS客户端解析域名慢解决
- 8月书讯丨11本新上好书速览(计算机+经管)
热门文章
- 压测springCloud报错ThreadPoolExecutor [Running, pool size = 10, active threads = 10, queued tasks=0错误 )
- 什么是变量提升和函数提升?
- 日本网络收音机应用源码
- C++通讯管理系统------实现增删改查的小练习
- 基于JAVA大学生二手物品交易网站演示记录2021计算机毕业设计源码+系统+lw文档+部署
- 基于Optaplanner和距离矩阵 实践动态路径规划
- PDF格式分析(五十一)XFA Forms
- mysql语句一定要大写_请问SQL语句必须用大写,是不是规范
- python金融分析试题_python 金融分析学习
- mysql自增不连续的问题