百钱买百鸡问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,用 100 文钱买 100 只鸡,公鸡、母鸡、小鸡各买多少只?
本程序要求解的问题是:给定一个正整数 n,用 n 文钱买 n 只鸡,问公鸡、母鸡、小鸡各买多少只?
输入格式
输入一个正整数 n。
输出格式
如果有解,依次输出公鸡、母鸡、小鸡的个数(用正整数表示)。
如果无解,输出"No Answer."。
数据范围
1≤n≤200
输入
100
输出
0 25 75
4 18 78
8 11 81
12 4 84
思路
根据题意可得到三种鸡的价格不同数目不同。故应该用循环结构进行运算,得出数目并利用判断判断是否符合条件,且需注意在不同n时三种及的最大数目也不同应在条件中进行相应运算。
#include<stdio.h>
int main(){
int x=0,y=0,z=0,n,m=0; //定义变量
scanf("%d",&n); //输入题中所给的n
for(x=0;x<=n/5;x++){ //进入公鸡数目循环
for(y=0;y<=n/3;y++){ //进入母鸡数目循环
z=n-x-y; //求得小鸡数目
if(z%3==0&&5*x+3*y+z/3==n&&x+y+z==n){ //保证三种鸡数目符合条件
printf("%d %d %d\n",x,y,z); //输出符合条件的三种鸡的数目
m=1;
}
}
}
if(m==0){
printf("No Answer.\n"); //当都不符合时输出题目要求的字符
}
return 0;
}