为方便计算,把小鸡的价格定义为1,母鸡价格为9,公鸡15,这样可以把问题当作300钱买100鸡了:
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/b7003af33a87e95057ab37d31b385343faf2b4d5?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
#include <stdio.h>
int price[3] = { 15, 9, 1 };
int chicknum[3];
void buychick(int curmoney, int ci)
{
int max, i;
max = curmoney / price[ci];
for (i = 1; i <= max; ++i)
{
chicknum[ci] = i;
if (2 == ci)
{
if (100 == chicknum[0] + chicknum[1] + chicknum[2])
if (300 == chicknum[0] * price[0] + chicknum[1] * price[1] + chicknum[2] * price[2])
printf("公鸡:%4d 母鸡:%4d 小鸡:%4d\n", chicknum[0], chicknum[1], chicknum[2]);
}
else
buychick(curmoney - chicknum[ci] * price[ci], ci + 1);
}
}
int main()
{
buychick(300, 0);
return 0;
}