快乐分享每一篇文章
【大公鸡问题】百钱买百鸡(2)
【大公鸡问题】百钱买百鸡(2)

【大公鸡问题】百钱买百鸡(2)

大家好呀,这次是百钱买百鸡的第二题,忘了的可以回顾百钱买百鸡

这次的题目还是放在这里,忘了的话大家可以看看

这是第一题的题目,第二题将题目中n的数据范围改为1

#include #include #include using namespace std;
int main(){    int n,c=0;    cin>>n;    for(int x=0;x5;x++)    {        for(int i=0;i3;i++)        {            int j=n-x-i; // 将小鸡的数量通过n-x-i得到            if(j%3==0)            {                    if(5*x+3*i+j/3==n) //无需判断j+x+i是否等于n,直接判断价格                    {                        cout" "" "endl;                        c=1;                    }            }                                }    }    if(c==0)    {        cout"No Answer.";    }  return 0;
}

这是一个相对容易想到的思路,但是可以大大提高代码的时间,但是此时的n的范围只有2000以内,还是相对来说比较小的,可是百钱买百鸡(3)可就没有那么简单了,来看题

 

我们看到这道题目有了明显的变化,从求方法变成了求个数,可是更明显的变化是n的范围扩大了五万倍,这让原来的代码根本无法在1秒中适应这么大的数据范围,给大家留一周的时间去想这题的正解,下周解答哦

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注