时隔一个暑假,去旅了个游,就忘更了,还记得上次说的是去年csp-j复赛的题目好像快要初赛啦,这个月将推出《百钱买白鸡》系列,讲解四道百钱买白鸡的题目,从下个月开始恢复csp系列
今天的题目会相对来说比较简单,是为之后的变态题目做准备的,所以今天的算法比较适合新手
先来看题
这道题大家应该都看得出来是什么算法吧是一道很明显的暴力枚举,所以代码如下
using namespace std;
int main()
{
int n,c=0; // n为多少钱(多少只鸡),c作为判断有没有答案输出no answer的一个变量
cin>>n;
for(int x=0;x5;x++) //枚举公鸡
{
for(int i=0;i3;i++) // 枚举母鸡
{
for(int j=0;j3;j++) // 枚举小鸡
{
if(j%3==0) //如果除的净(节约时间)
{
if(x+j+i==n && 5*x+3*i+j/3==n) //判断是否成立的条件
{
cout" "" "endl; //输出公鸡、母鸡、小鸡
c=1;// 有答案 所以将c设为一
}
}
}
}
}
if(c==0) // 没有答案
{
cout"No Answer.";
}
return 0;
}
这是一道特别经典的题目,可是这个代码运算量极高,如果将n的范围改成1