算法创作|核桃的数量问题解决方法

问题描述小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班。为鼓舞士气,小张打算给每个组发一袋核桃(据传言核桃能补脑),他的要求是:各组的核桃数量必须相同各组内能平分核桃(不能打碎)尽量提供满足(1)(2)条件的最小数量输入包含三个正整数a,b,c表示每个组正在加班的人数,用空格分开(a,b,c<30),输出一个正整数,表示每袋核桃的数量解决方案显然,我们用数学的思维看待这个问题,实际上就是数学上求解三个数最小公倍数的过程,那么如何求解三个数的最小公倍数呢?首先,我们要求出两个数的最大公因数,这就要运用到欧几里得算法(即辗转相除法),求出两数的最大公约数之后,我们再用图示代码求出三个数的最小公倍数。求解三个数的最小公倍数示例代码def zhanzhuanxiangchufa(a,  b):while(b!=0):temp = a % ba = bb = tempreturn a            #求两个数的最大公约数def gongbeishu(a,b):return  int((a*b)/zhanzhuanxiangchufa(a,b))#求最小公倍数a,b,c  =map(int,input().split()) #读入三个数hetaoshuliang=gongbeishu(gongbeishu(a,b),c)print(hetaoshuliang)  #求解核桃数量结语本篇文章主要是解决三个数求解最小公倍数的问题,用到了数学当中的辗转相除法。此道蓝桥杯真题告诉我们在遇到问题时必须要将它分步求解,首先要认真审题,将题目化抽象为具体,上述问题我们将生活中的实际问题转化为数学问题,将它具体化,然后再联系平时学过的已有知识进行求解。该解法仅代表个人观点,可能还有其它更加便捷的求解方式,希望此解法能够给读者带来帮助,如果上述观点有任何不足之处,欢迎广大读者能够指正。实习编辑:衡辉作者:冯睿、陈鱼江、肖华稿件来源:深度学习与文旅应用实验室(DLETA)

(0)

相关推荐