7-6 鸡群的怜悯 (10分)

7-6 鸡群的怜悯 (10分)
有一只公鸡年老色衰,体力也大不如前。为了保持配种的成功率,农夫买回一只小公鸡,丢在了鸡窝里面。俗话讲一山不容二虎,没想到一窝不容二鸡。小公鸡去了以后,可以说是卖力的表演,使尽了浑身的解数,吸引了所有的母鸡的注意,老公鸡觉得地位不保,很是担心。于是他提出跟新来的小公鸡举行一场赛跑:赢的留下,输的自动离开。第二天早上,两只鸡来到了起跑线上,随着一只母鸡的发令枪响两只鸡如同离弦之箭冲出跑道,拼命的往前跑。老公鸡刚开始还遥遥领先,后来体力渐渐不行了,慢慢被小公鸡赶了上来,就在这个小公鸡即将赶上老公鸡的时候,突然间“啪”的一声枪响,小公鸡顿时倒在血泊之中……只见农夫手里拿着一杆枪,气愤地说: “他们又卖给我一只同性恋的鸡!” 小红看完笑话决定好好学习,刚打开一本杂志,杂志上有人在卖鸡,小红决定买n只来玩玩,但小红只有n元钱,大公鸡一只要5元,大母鸡一只要4元,3只小鸡要2元,请问小红可以怎么买鸡;

输入格式:
输入一个数 n(1<=n<=2000);(有多组输入)

输出格式:
输出满足要求公鸡,母鸡,小鸡的个数的所有情况(按公鸡个数从小到大排序)。如果买不到就输出"No!"

输入样例:
在这里给出一组输入。例如:

1
10
568

输出样例:
在这里给出相应的输出。例如:

No!
0 1 9
6 49 513
16 36 516
26 23 519
36 10 522

#include <stdio.h>
#include <stdlib.h>
struct num//用结构体储存各种鸡的个数
{
    int x;
    int f;
    int m;
};
int main()
{
    int n, flg=0;
    while(~scanf("%d", &n))//输入多组数据
    {
            flg=0;
            struct num y;
            int sum=0;
            for(y.m=0 ; y.m<n/5 ; y.m++)//各种鸡的花费不可能超过总个数n
            {
                for(y.f=0 ; y.f<n/4; y.f++)
                {
                    y.x=n-y.f-y.m ;
                    if(y.x%3==0)
                    {
                        int a;
                        a=y.x/3;
                        sum=a*2+y.f*4+y.m*5;
                        if(sum==n)
                        {
                            printf("%d %d %d\n", y.m, y.f, y.x);
                            flg=1;//标记能买到鸡
                        }
                    }
                }
            }
            if(flg==0)//表示不能买到鸡
            {
                printf("No!\n");
            }
        
    }
    return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值