课程首页 › 第3部分 › 第59课

第59课 经典之鸡兔同笼

第3部分 不辞辛苦 · 循环结构· 知识点:多重循环应用

经典之鸡兔同笼(多重循环应用)

数学中有一个经典的“鸡兔同笼”问题,已知头共有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++程序,计算出一种可能的篮子中每种水果的数量。

示例: