题目描述
中国数学家张邱建(公元五世纪,其它资料不详),在他的《算经》中提出了著名的“百钱买百鸡”问题:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一。百钱买百鸡,问翁、母、雏各几何?
你的任务是:根据给定的钱数 m,和买到的鸡数 n ,输出所有的方案。如果没有可行方案,输出 None
。
输入格式
只有两个整数 m,n(0<m,n<10000)
输出格式
若干行,每行 3 个数,表示一种可行方案,分别表示鸡翁、鸡母、鸡雏的数量。
样例 #1
样例输入 #1
100 100
样例输出 #1
0 25 75
4 18 78
8 11 81
12 4 84
样例输入 #2
100 10
样例输出 #2
None
#include <iostream>
using namespace std;
int a[1010],sum[1000010],cnt;
int main()
{
int m,n;
cin>>m>>n;
bool flag=false;
for(int i=0;i<=m/5;i++)
{
for(int j=0;j<=(m-i*5)/3;j++)
{
int k=(m-i*5-j*3)*3;
if(i+j+k==n)
{
cout<<i<<" "<<j<<" "<<k<<endl;
flag=true;
}
}
}
if(!flag)
cout<<"None";
return 0;
}
没啥好说的,就是k直接算,不用循环了,算是剪枝。还有最后那个None要输出。