百钱买百鸡问题TimeLimit:1SecMemoryLimit:2MBSubmit:1120Solved:161[Submit][Status][WebBoard]Description“百钱买百鸡”是我国著名的古代数学问题,中国古代数学家张丘建在他的《算经》中提出了这样一个问题:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?你的任务是求解下面这个问题。问题是这样描述的:a文钱可买一只公鸡,b文钱可买一只母鸡,c文钱可买d只小鸡。用m文钱买n只鸡,那么有公鸡x只、母鸡y只、小鸡z只。求解出符合题意的x,y,z。Input输入为一张表。第一行是一个固定不变的表头,格式见sample。后面有多行,每行为一组测试数据。每组测试数据由6个整数组成,分别为“a,b,c/d,m,n”。满足0<a,b,c,d<=50,50<=m,n<=108+1,并且母鸡和小鸡的单价不会相同。Output每组测试数据的运行结果输出为一张表,表头固定为“COCKS,HENS,CHICKS”。每组测试数据的一个可行解数出为一行,为三个整数:“x,y,z”。多组解按照公鸡数从少到多的顺序输出。若测试数据无解则输出“Cannotbuy!”。两组测试数据之间用一个空行分隔开。SampleInputCOCK,HEN,CHICK,MONEY,CHICKS3,2,1/3,100,1005,3,1/3,100,1008,5,1/7,100,1008,5,1/7,300,300SampleOutputCOCKS,HENS,CHICKS0,40,605,32,6310,24,6615,16,6920,8,7225,0,75COCKS,HENS,CHICKS0,25,754,18,788,11,8112,4,84Cannotbuy!COCKS,HENS,CHICKS8,40,252HINT本题重点在于了解多重循环的运行效率问题,减少一层循环可以降低很大规模的运算量。通过在循环体内加计数器可以统计出循环的运行次数,当测试数据变大时,运行次数的增长会非常可观,这就是超时的原因了。AppendCode#include<>#include<>intmain(){chars[50];longinta,b,m,n,x,y,z,flag;intc,d;gets(s);while(scanf("%ld,%ld,%d/%d,%ld,%ld",&a,&b,&c,&d,&m,&n)!=EOF){flag=0;for(x=0;x<=n;x++){
百钱买百鸡问题 来自淘豆网m.daumloan.com转载请标明出处.