n钱m鸡问题 |
||
题目描述一只公鸡值五文钱; 一只母鸡值三文钱;三只小鸡值一文钱 。请问用n文钱买m只鸡的方案有多少种? 输入格式输入有多个case, 每个case如下 n m 其中n,m <= 100, 输入以EOF结束。 输出格式对于每个case输出一行, 这一行只有一个整数,表示解的个数 样例输入100 100 样例输出4 |
1 // Problem#: 6272 2 // Submission#: 1617383 3 // The source code is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License 4 // URI: http://creativecommons.org/licenses/by-nc-sa/3.0/ 5 // All Copyright reserved by Informatic Lab of Sun Yat-sen University 6 7 //已知公鸡母鸡小鸡的单价,给出钱数与鸡数,求买的方案数目 8 9 #include <stdio.h> 10 11 int main() 12 { 13 int Clock , Hen , Chick; //定义公鸡母鸡小鸡为整型 14 int sum=0 , m , n; //定义总方案书为sum,初始化sum为0,并设立中间存储变量 15 16 17 while (scanf("%d %d",&n,&m) != EOF)//输入总钱数与总鸡数,并且当键入Ctrl+D时结束循环 18 { 19 20 for(Chick=0;Chick<=m;Chick++)//三个嵌套的for循环结构,从公鸡为0到m,母鸡从0到m,小鸡从0到m一次尝试,直到成功记录方案数一次 21 22 for(Hen=0;Hen<=m;Hen++) 23 24 for(Clock=0;Clock<=m;Clock++) 25 26 { 27 if (m == Clock + Hen + Chick && n == Clock*5 + Hen*3 + (Chick/3) && Chick % 3 ==0)//必须满足这三个条件才能形成一个方案 28 29 sum++;//方案数目自动计数 30 } 31 32 printf ("%d\n",sum);//输出方案数目 33 sum=0;//返回0 34 } 35 36 return 0; 37 } 38 39 40 41 42
写了很久……还询问了同学才写出来