问题描述:
我国古代数学家张丘建在《算经》一书中曾提出过著名的“百钱买百鸡”问题,该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何? 翻译过来,意思是公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?
设计思路:
- 确定三种鸡的关系。设三个float变量:公鸡数量为x、母鸡数量为y、小鸡数量为z。列出关系方程为x*5+y*3+z/3=100且x+y+z=100。
- 首先确定x的最大值找到x的取值范围、再求满足x+y<=100情况下y的最大值,确定在已知x的条件下y的取值范围。
- 然后依次枚举在x确定时y的可能取值,并解出在这种情况下满足x+y+z=100条件的z的取值,最后将x、y、z带入到关系方程x*5+y*3+z/3=100,如果满足条件则将其输出。
流程图:
伪代码:
for x from 0 to 20: // 公鸡最多能买20只
for y from 0 to 33: // 母鸡最多能买33只,保证x+y<=100
z = 100 - x - y // 计算小鸡数量
if z % 3 == 0 and 5*x + 3*y + z/3 == 100: // 满足条件
cout(x y, z)
代码实现:
#include <iostream>
using namespace std;
int main()
{
for (float x = 0; x <= 20; x++)
{
for (float y = 0; y <= 100-x; y++)
{
float z = 100 - x - y;
if (x * 5 + y * 3 + z / 3 == 100)
cout << x << ' ' << y << ' ' << z << endl;
}
}
}
标签:母鸡,流程图,公鸡,代码,float,小鸡,百鸡百钱,100 From: https://www.cnblogs.com/wang111215/p/17327836.html