前言

事情是这样的,这周信息老师布置了一个小作业,画出百钱买鸡的流程图,博主从来没画过呀,怎么办呢,当然是找度娘了,在我的一番搜寻之下,我终于掌握了画流程图的基础,于是有了这一篇文章。这一篇文章是我对自我画流程图的一个总结,如有不对的地方,还请各位大佬指正

开始

准备

  1. wps
  2. 勤劳的双手

wps的使用

首先我们点击插入

python百鸡百钱问题算法 百钱百鸡python流程图_流程图

接着我们点击形状

python百鸡百钱问题算法 百钱百鸡python流程图_百钱买鸡_02

找到流程图一栏,里面就有很多流程图要用到的框啊,图形啊,各位可以自行去尝试,这里我就不多做演示了

成果展示

python百鸡百钱问题算法 百钱百鸡python流程图_python_03

流程图可能画得不是很标准,因为这是博主第一次画流程图,如有错误还请指出更正

注意,因为我也是初学者,所以这个流程图只能给小白一个参考

思路

这里我们要解决一个百钱买鸡的问题

我先贴上代码吧

for gj in range(0,21):#公鸡0~20
    for mj in range(0,34):#母鸡只数0~33
        for xj in range(0,100):#小鸡只数0~99
            if gj+mj+xj==100 and gj*5+mj*3+xj/3==100:#条件控制
                print(f'公鸡:{gj},母鸡:{mj},小鸡:{xj}')#打印各鸡只数

我们梳理一下思路

假设公鸡是4只,那么有几种搭配情况?

python百鸡百钱问题算法 百钱百鸡python流程图_python_04

有这么多组合,是不是看了就烦,人工去一个一个的筛选价格有没有超过100是不是很耗费时间

我这里采用的是for循环嵌套,不难看出,当公鸡为4时,程序会打印所有母鸡,小鸡的可能性,我们怎样去筛选价格总和为100的组合呢

下面贴上代码

if gj+mj+xj==100 and gj*5+mj*3+xj/3==100:#条件控制

可以看到我这里使用了一个判断分支

当所有鸡的只数加起来为100,并且公鸡只数×5文钱加上母鸡只数×3文钱再加上小鸡只数/3只每文等于100文钱的时候我们将组合打印出来,于是便得到了下面这个结果

python百鸡百钱问题算法 百钱百鸡python流程图_python百鸡百钱问题算法_05

可以看到符合条件的只有四个组合,其实第一个组合还要去除,因为原题是要求公鸡母鸡小鸡都必须有,那我们要结果不带第一个组合怎么办,很简单,判断分支再加条件呗

就像这样

if gj+mj+xj==100 and gj*5+mj*3+xj/3==100 and gj > 0:#条件控制

得到结果如下

python百鸡百钱问题算法 百钱百鸡python流程图_python百鸡百钱问题算法_06

是不是就少了第一组呢

如果你不放心,完全可以人工计算一下总数和价格,这里我就不计算了,我还是相信我的程序的(开玩笑的)

我们取第一组来验算一下吧

4×5+18×3+78/3=100

4+18+78=100

没有问题,证明程序还是可靠的

鸡兔同笼大家应该都知道吧,那个问题也可以用这个思路来解决,具体怎样操作我这里就不演示了,相信各位小伙伴理解了百钱买鸡的话解决鸡图同笼肯定很容易

结尾

本文章主要通过百钱买鸡这个问题来探讨流程图的画法及其程序设计思路,我觉得,编程是对思维能力有一定的帮助的,生活的方方面面都可以用编程来计算,博主也只是个普通高中生,希望能通过自己对编程的这份热爱来影响更多人,特别是新时代的青少年,学习编程是大势所趋,相信未来编程对于大众也不会再是一个陌生的事情。

文章如有错误,欢迎各位大佬指出,感谢你的阅读,下次见!!!