TOJ 5270: 百钱买百鸡

5270: 百钱买百鸡

描述

百鸡问题是一个数学问题,出自中国古代约5—6世纪成书的《张邱建算经》:今有鸡翁一,值钱伍;鸡母一,值钱三;鸡鶵三,值钱一。凡百钱买鸡百只,问鸡翁、母、鶵各几何?

意思就是:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,用100文钱买100只鸡,公鸡、母鸡、小鸡各买多少只? 
现在的问题是:给定一个正整数n,用n文钱买n只鸡,问公鸡、母鸡、小鸡各买多少只?

输入

多组数据,每组输入一个正整数n(n<=100)。

输出

如果有解,输出所有解,每个解占一行,包含公鸡、母鸡、小鸡的只数。

公鸡母鸡小鸡个数均大于等于0,按公鸡数目从小到大输出,公鸡数目相同按母鸡数目从小到大输出,以此类推。

如果无解,输出“No Answer”。 

样例输入

100

样例输出

0 25 75
4 18 78
8 11 81
12 4 84

代码

#include <stdio.h>
int main()
{
int x,y,z,i,j,n,x1[100],y1[100],z1[100],c,q;
while(scanf("%d",&n)!=EOF)
{
c=0;
for(x=0;x<=n;x++)
{
for(y=0;y<=n;y++)
{
z=n-x-y;
if((z%3==0)&&(5*x+3*y+z/3==n))
{
c++;
x1[c]=x;
y1[c]=y;
z1[c]=z;
}
}
}
if(c==0)
printf("No Answer\n");
else
{
for(i=1;i<=c;i++)
{
j=101;
if(x1[i]<j)
{j=x1[i];
q=i;}
else if(x1[i]=j)
{
if(y1[i]<y1[i-1])
q=i;
else if(z1[i]<z1[i-1])
q=i;
}
printf("%d %d %d\n",x1[q],y1[q],z1[q]);
}
}
}
return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值