鸡兔同笼问题,VBA轻松解决

前言

如果你家有娃正在上小学,鸡兔同笼问题肯定会遇到。这是一个古老的题型,《孙子算经》中就记载了这个有趣的问题。书中是这样叙述的:“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?

这四句话的意思是:有若干只鸡兔同在一个笼子里,从上面数,有35个头;从下面数,有94只脚。求笼中各有几只鸡和兔?

学院派解决方案

这个肯定要列方程啊,步骤大体如此:

解:

设鸡为X只,那么兔为(35-X)只

根据题意:

2X+4(35-X)=94

X=23

35-X=12

所以:鸡23只,兔12只

当然你还可以列两个未知数,通过加减消元来解出答案。

民间高手解决方案

假设鸡和兔都训练有素,吹一声哨,抬起一只脚,地上还有94-35=59只脚。再吹哨,又抬起一只脚,地上还剩59-35=24只脚,这时鸡都一屁股坐地上了,兔子还两只脚立着。所以,兔子有24÷2=12只,鸡有35-12=23只。

EXCEL VBA解决方案

那么如何用EXCEL来做呢?

首先ALT+F11打开VBA编辑器,插入模块,在模块下输入下列代码,单引号’后面为注释,不参与程序运行。

Sub chicken_rabbit() '定义过程

head = 35 '鸡和兔共有35个头

foot = 94 '鸡和兔共有94只脚

For chicken = 1 To head '鸡的数量从1到35进行循环

rabbit = head - chicken '兔的数量等于35减去鸡的数量

If chicken * 2 + rabbit * 4 = foot Then '如果鸡和兔的脚为94只

MsgBox ("答案:"& Chr(10) & "鸡"& chicken & "只"& Chr(10) & "兔"& rabbit & "只")'弹出对话框,显示答案

EndIf '判断结束

Next '循环,鸡的数量加一

End Sub '过程结束

运行结果如下:

知识点

学习EXCEL和VBA要找到应用场景,没有场景,创造场景也要上。

常用vba语句

FOR……NEXT循环语句

IF…….THEN……ELSE判断语句

MSGBOX消息框

Chr(10)换行符

&连字符,将多个字符和变量连接起来,形成字符串。

(0)

相关推荐