算法创作|蓝桥杯真题分糖果问题解决方法

问题描述有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:每个小朋友都把自己的糖果分一半给左手边的孩子。一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。反复进行这个游戏,直到所有小朋友的糖果数都相同为止。你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果。输入格式:程序首先读入一个整数N(2<N<100),表示小朋友的人数。接着是一行用空格分开的N个偶数(每个偶数不大于1000,不小于2)。输出格式:要求程序输出一个整数,表示老师需要补发的糖果数。解决方案对于这种比较复杂的题目,我们可以将问题拆解。本题可以简化为:(1)每个小朋友将自己的糖果分一半给左边的孩子。(2)给拥有奇数颗糖的孩子补发糖果。(3)判断所有孩子糖果数量是否相等。在写代码时,我们必须先读入孩子的个数,其次判断每个孩子的糖果数,由此计算出这个孩子应该给左边孩子的糖果数量。最后判断奇偶,进行补发糖果并判断孩子的糖果数量是否相等,如果不相等,则反复进行这些步骤。分糖果问题示例代码N = int(input())  # 孩子的个数s = list(map(int,  input().split()))  # 每个孩子的糖果数ans = sum(s)  # 开始总的糖果数a = s[0] // 2   # 上一个孩子给下一个孩子的糖果数while len(s) !=  s.count(s[0]):  # 当每个人糖果数不一样时执行for i in range(N):if i + 1 == N:   # 让最后一个孩子的下一个指向第一个孩子i = -1# 分糖果s[i+1], a = s[i+1] + a - s[i+1] // 2,  s[i+1] // 2if s[i+1] % 2 != 0:  # 奇数时加1s[i+1] += 1ans = sum(s)-ans # 补发的糖果数print(ans)结语这道蓝桥杯真题启示我们下次遇到这类比较复杂的问题时,应该有一种化繁为简的思想,找出问题中的关键之处,并将之向数学问题转化,就如同数学当中解决应用题一样。实际上,算法与编程是工具,设计算法并不是目的,解决实际问题才是目的。以上是编者对这道题目的看法,此道题目可能还有更好的解决方案,除了用python实现之外,还可以用Java实现,欢迎广大读者发挥自己的创造性与创新性,积极挖掘更好的解决方案。实习编辑:衡辉作者:陈鱼 江肖华 冯睿

(0)

相关推荐

  • 第一节公开课内容

    第一个知识点:一位数和两位数的回顾,三位数的初步认识. 第二个知识点:数轴初步认识和数轴的简单应用:数轴小学一年级知识,发现很多孩子忘记了. 讲解了用数轴解决实际问题. 例:同学们排成三队在操场做操, ...

  • 0 是偶数还是奇数?

    视频来源:遇见数学公号

  • 算法创作|2020蓝桥杯真题-跑步锻炼

    问题描述小蓝每天都锻炼身体.正常情况下,小蓝每天跑 1 千米.如果某天是周一或者月初(1 日),为了激励自己,小蓝要跑 2 千米.如果同时是周一或月初,小蓝也是跑 2 千米.小蓝跑步已经坚持了很长时间 ...

  • Python | 2018蓝桥杯真题练习—猴子分香蕉

    问题描述 5只猴子是好朋友,在海边的椰子树上睡着了.这期间,有商船把一大堆香蕉忘记在沙滩上离去.第1只猴子醒来,把香蕉均分成5堆,还剩下1个,就吃掉并把自己的一份藏起来继续睡觉.第2只猴子醒来,重新把 ...

  • 算法创作|蓝桥杯关于成绩统计问题解决方法

    标题问题描述示例:小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数.如果得分至少是 60 分,则称为及格.如果得分至少为 85 分,则称为优秀.请计算 ...

  • 算法创作|蓝桥杯——排列序数问题解决方法

    问题描述示例:如果用a b c d这4个字母组成一个串,有4!=24种,如果把它们排个序,每个串都对应一个序号:abcd  0abdc  1acbd  2acdb  3adbc  4adcb  5ba ...

  • Python | 2020蓝桥杯真题-寻找2020

    问题描述小蓝有一个数字矩阵,里面只包含数字 0 和 2.小蓝很喜欢 2020,他想找到这个数字矩阵中有多少个 2020 .小蓝只关注三种构成 2020 的方式:· 同一行里面连续四个字符从左到右构成 ...

  • 算法创作|蓝桥杯-体力消耗问题解决方法

    问题描述用文字描述要解决的问题是什么.示例:小明要做一个跑步训练.初始时,小明充满体力,体力值计为 10000.如果小明跑步,每分钟损耗600 的体力.如果小明休息,每分钟增加300的体力.体力的损耗 ...

  • Python|蓝桥杯真题-单词分析

    问题描述 小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组成,有些单词很长,远远超过正常英文单词的长度.小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个 ...

  • Python|2020蓝桥杯真题-跑步训练

    引言蓝桥杯是国内始终领跑的人才培养选拔模式并获得行业深度认可的IT类科技竞赛.问题描述小明要做一个跑步训练.初始时,小明充满体力,体力值计为 10000.如果小明跑步,每分钟损耗600 的体力.如果小 ...

  • Python|2018蓝桥杯真题练习—哪天返回

    问题描述 小明被不明势力劫持.后莫名其妙被扔到x星站再无问津.小明得知每天都有飞船飞往地球,但需要108元的船票,而他却身无分文.他决定在x星战打工.好心的老板答应包食宿,第1天给他1元钱.并且,以后 ...