题目描述:
公鸡5文钱一只, 母鸡3文钱一只,小鸡3只一文钱,用100文钱买100只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱?请利用python程序控制结构部分的知识编程解决该问题。
题目分析
1.100文钱,公鸡5文钱一只, 母鸡3文钱一只,小鸡3只一文钱,如果全买公鸡,最多买20只,全买母鸡最多买33只,全买小鸡,要保证全都有,最多98只,所以,要保证全都有,总数在100只,必须在公鸡母鸡小鸡中进行计算。
函数实现:
void Func()
{
for (int i = 1; i <= 20; i++)
{
for (int j = 1; j < 33; j++)
{
for (int k = 3; k < 300; k+=3)
{
if (i + j + k == 100 && i * 5 + j * 3 + k / 3 == 100)
{
printf("公鸡=%1d只,母鸡=%1d只,小鸡=%1d只\n", i, j, k);
}
}
}
}
}
利用3层for循环,依次遍历出合适的结果,找到最佳的购买方式。
公鸡从1只,到20只,母鸡从1只到33只,小鸡从3只到98只。要总共100文,总数100只。
具体实现
C语言
#define _CRT_SECURE_NO_WARNINGS 1
//买小鸡
#include <stdio.h>
void Func()
{
for (int i = 1; i <= 20; i++)
{
for (int j = 1; j < 33; j++)
{
for (int k = 3; k < 300; k+=3)
{
if (i + j + k == 100 && i * 5 + j * 3 + k / 3 == 100)
{
printf("公鸡=%1d只,母鸡=%1d只,小鸡=%1d只\n", i, j, k);
}
}
}
}
}
int main()
{
int g = 0, m = 0, x = 0;
Func();
return 0;
}
Python实现
for i in range(1,20):
#假如全买公鸡最多20个
for j in range(1,33):
#假如全买母鸡最多33个
for k in range(3,99,3):
#假如全买小鸡最多98个,要保证 全部都有
if (i + j + k == 100 and i * 5 + j * 3 + k // 3 == 100):
#判断公鸡母鸡小鸡是否有100只 和 加起来是否为100文钱
print("公鸡", i,"只,母鸡", j,"只,小鸡", k,"只\n");
结果: