百钱买百鸡问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,用100文钱买100只鸡,公鸡、母鸡、小鸡各买多少只?
本程序要求解的问题是:给定一个正整数n,用n文钱买n只鸡,问公鸡、母鸡、小鸡各买多少只?
输入格式
输入一个正整数n。
输出格式
如果有解,依次输出公鸡、母鸡、小鸡的个数(用正整数表示)。
如果无解,输出"No Answer."
。
数据范围
1≤n≤200
输入样例
100
输出样例
0 25 75 4 18 78 8 11 81 12 4 84
解题思路
用三个for循环算公鸡,母鸡,小鸡。每个鸡分开算,最后判断相加是否等于钱数。
#include<stdio.h>
#include<math.h>
int main()
{
int n,g,m,x,cnt=0;
scanf("%d",&n);
for(g=0;g<n;g++) //算公鸡数
{
for(m=0;m<n;m++) //算母鸡数
{
for(x=0;x<n;x++) //算小鸡数
{
if(g*5+m*3+x/3==n&&g+m+x==n&&x%3==0) //判断三种鸡相加是否等于输入的值
{
printf("%d %d %d\n",g,m,x);
cnt=1;
}
}
}
}if(cnt==0)
{
printf("No Answer.\n");
}
return 0;
}