1074: 百钱买百鸡
Description
百钱买百鸡问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,用100文钱买100只鸡,公鸡、母鸡、小鸡各买多少只?
本程序要求解的问题是:给定一个正整数n,用n文钱买n只鸡,问公鸡、母鸡、小鸡各买多少只?
Input
输入一个正整数n(n<=100)。
Output
如果有解,种组合占一行,包含公鸡、母鸡、小鸡的个数,用正整数表示,每个数据占4列。公鸡母鸡小鸡个数均大于等于0,按公鸡数目从小到大输出,公鸡数目相同按母鸡数目从小到大输出,以此类推。如果无解,输出“No Answer”。
Sample Input
100
Sample Output
0 25 75
4 18 78
8 11 81
12 4 84
HINT
1 #include <stdio.h> 2 3 int main(void) 4 { 5 int n,i,j,k,flag=1;//i,j,k分别为母鸡,公鸡,小鸡的数目 ,flag=1表示无解 6 scanf("%d",&n); 7 //公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱 8 //按公鸡数目从小到大输出,公鸡数目相同按母鸡数目从小到大输出,以此类推。 9 //所以i,j,k从0开始 10 //若按公鸡数目从大到小输出,公鸡数目相同按母鸡数目从大到小输出,以此类推。 11 //i,j,k都从最大值开始 12 for(i=0;i<=n/5;i++)// 公鸡数目最多为n/5 13 { 14 for(j=0;j<=n/3;j++)//母鸡数目最多为n/3 15 { 16 for(k=0;k<=3*n;k+=3)//小鸡数目最多为3*n 17 { 18 if((k/3)*1+j*3+i*5==n&&i+j+k==n)//n钱买n只鸡 19 { 20 printf("%4d%4d%4d\n",i,j,k);//每个数据占4列,右对齐 21 flag=0; //flag=0表示有解 22 } 23 } 24 } 25 } 26 if(flag) 27 { 28 printf("No Answer\n");//flag=1 29 } 30 return 0; 31 }
浙公网安备 33010602011771号