前言
如果你家有娃正在上小学,鸡兔同笼问题肯定会遇到。这是一个古老的题型,《孙子算经》中就记载了这个有趣的问题。书中是这样叙述的:“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?
这四句话的意思是:有若干只鸡兔同在一个笼子里,从上面数,有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要找到应用场景,没有场景,创造场景也要上。
FOR……NEXT循环语句
IF…….THEN……ELSE判断语句
MSGBOX消息框
Chr(10)换行符
&连字符,将多个字符和变量连接起来,形成字符串。