课程首页 › 第3部分 › 第59课
第59课 经典之鸡兔同笼
经典之鸡兔同笼(多重循环应用)
数学中有一个经典的“鸡兔同笼”问题,已知头共有30个,脚共有90只,问笼中的鸡和兔各有多少只。
经典问题有各种解法,一起探索吧。
题目分析
先来个假设,假设鸡有i只,兔有j只,那么我们能得到什么?
(1)一只鸡一个头,一只兔一个头→i + j=30
(2)一只鸡两只脚,一只兔四条腿→2×i + 4×j=90
问题求解
(1)方程都已经列好了,下面直接求解:
i=30 - j
↓带入2×i + 4×j=90
2×(30 - j)+ 4×j=90
↓计算
j=15
i=30 - j=15
(2)暴力求解:

运行程序:
不用动脑筋,借助双重循环,鸡从0到30,同时兔从0到30,满足条件就输出数量。
(3)暴力结合条件:

运行程序:
借助一个条件算出j,少一个循环快速解题。
鸡兔同笼
将固定的数字转变成变换的数字,即n个头,m只脚。

运行程序:
无解

反算
想要设计鸡兔同笼的题目数字,不妨借助反算,先通过输入鸡和兔的数量求出头和脚的数量,再去构建题干。


巩固练习
(1)方程中需要同时满足多个条件时,通常需要使用哪种运算符?()
A.==
B.&&
C.||
D.<>
(2)根据输出效果完善程序代码。

(3)在一个篮子中有苹果和香梨,其中一个苹果的重量是0.2千克,一个香梨的重量是0.25千克。已知篮子中的水果的总个数和总重量,用一
个for循环编写一个C++程序,计算出一种可能的篮子中每种水果的数量。
示例: