百钱买百鸡问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,用 100100 文钱买 100100 只鸡,公鸡、母鸡、小鸡各买多少只?
本程序要求解的问题是:给定一个正整数 nn,用 nn 文钱买 nn 只鸡,问公鸡、母鸡、小鸡各买多少只?
输入格式
输入一个正整数 nn。
输出格式
如果有解,依次输出公鸡、母鸡、小鸡的个数(用正整数表示)。
如果无解,输出
"No Answer."
。
数据范围
1 \le n \le 2001≤n≤200。
Sample Input
100
Sample Output
0 25 75 4 18 78 8 11 81 12 4 84
解题思路
1.计算公鸡,母鸡,小鸡的关系式得a+b+c=n,a*5+b*3+c/3=n
2.运用循环不断得出解
3.利用变量i得出是否有解
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
int a,b,c;//a公鸡,b母鸡,c小鸡
c=0;
int i=0;//利用i表示是否有解如果有解则i为1
while(a<=n/5){//公鸡数量不能超过最大值n/5
b=0;//重置母鸡的数量(如不重置指挥产生一个解)
while(b<=n/3-a){//母鸡数量不能超过最大值n/3-a
c=n-a-b;
if(a*5+b*3+c/3==n&&b+a+c==n&&c%3==0){//所有鸡数量和为n;买鸡的钱为n;小鸡为3的倍数(小鸡数量为int型在计算钱时可能因为小数从而产生误差)
printf("%d %d %d\n",a,b,c);
i=1;
}
b++;
}
a++;
}
if(i==0){
printf("No Answer.");
}
return 0;
}