中国古代算书《张丘建算经》中有一道著名的百鸡问题:公鸡每只值5 文钱,母鸡每只值3 文钱,而3 只小鸡值1 文钱。用100 文钱买100 只鸡,问:这100 只鸡中,公鸡、母鸡和小鸡各有多少只?
int countChickens(int n, int g[],int m[],int s[]) //g[],m[],s[]分别存放当钱数为n时的公鸡、母鸡、小鸡的数量
{
int a,b,c,k;
a = b = k = 0;
int n_g = n/5; //可买到公鸡的最大数量
int n_m = n/3;
for (;a <= n_g;a++){
for (;b <= n_m; b++){
c = n - a - b;
if ((c%3==0)&&(5*a+3*b+c/3==n)){
g[k] = a;
m[k] = b;
s[k] = c;
k++;
}
}
b=0;
}
return k;
}