百鸡百钱【枚举算法】
题目描述
百鸡百钱是中国古代数学家张丘建在《算经》一书中提出的数学问题:
鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
含义:公鸡每只单价为5,母鸡每只单价为3,小鸡三只总价为1;如果买100只鸡的价钱恰好为100,那么其中的公鸡、母鸡、小鸡数量分别是多少?
经过计算,有四种情况可以满足百鸡百钱(鸡的数量可以为0)
公鸡 | 母鸡 | 小鸡 |
0 | 25 | 75 |
4 | 18 | 78 |
8 | 11 | 81 |
12 | 4 | 84 |
现在将问题推广到一般情况:输入鸡的总数n和总价m(1≤m,n≤200),计算公鸡、母鸡、小鸡的数量各是多少?
输入
鸡的总数n和总价m(1≤m,n≤200)
输出
公鸡、母鸡、小鸡的数量,之间有一个空格(测试数据确保至少有一组解)
如果有多组解满足条件,要求每一组解占一行,并按照公鸡,母鸡,小鸡数量的升序输出
样例输入 Copy
100 100
样例输出 Copy
0 25 75 4 18 78 8 11 81 12 4 84
#include<stdio.h>
int main()
{
int x,y,z,a,b,i;
scanf("%d %d",&a,&b);
for(x = 0;x <= a;x++)
for(y = 0;y <= a;y++){
z = a - x - y;
if(5*x + 3*y + z/3.0 == b)
{
printf("%d %d %d\n",x,y,z);
}
}
return 0;
}