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 }

 


 

posted on 2015-10-22 15:05  不丼独乐  阅读(1368)  评论(0)    收藏  举报

导航