题目描述:
百钱买百鸡问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,用 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循环嵌套,只需用三个for循环分别控制公鸡,母鸡,小鸡个数,且循环中需要加入判断条件,小鸡个数必须是的倍数,三种鸡综合为n,三种鸡所花费钱的总和为n,即可找出满足条件的三种鸡的组合。
代码运行
int main(){
int a,b,c,n,k=0;
scanf("%d",&n);
for(a=0;a<n;a++){//公鸡
for(b=0;b<n;b++){//母鸡
for(c=0;c<n;c++){//小鸡
if(a*5+b*3+c/3==n&&c%3==0&&a+b+c==n){/*满足花费总金额和三种鸡
个数等于n,且小鸡为三的倍数*/
printf("%d %d %d\n",a,b,c);
k++;//用于记录三种鸡是否有满足条件的组合
}
}
}
}
if(k==0){//如果没有满足条件的组合
printf("No Answer.");
}
return 0;
}
通过三重循环解决百钱买百鸡问题,探讨不同数量的公鸡、母鸡、小鸡购买组合,使得花费总额和购买数量同时满足题目要求。
823

被折叠的 条评论
为什么被折叠?



