也许有人觉得蛮力法没有一点技术含量,只是单纯的将所有的情况列举起来,然后在进行判断;是一种没有任何技术思维;其实不是这样的;在实在找不到规律的时候,递归可以帮我们找到正确的答案并将答案输出:
1:穷举需要知道穷举的数字范围和找到穷举的约束条件;
2:百钱百鸡问题。中国古代数学家张丘建在《算经》中提出了著名的“百钱百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,翁、母、雏各几何?
此问题是一个比较经典的穷举问题,根据钱的总数通过确定鸡翁,鸡母,鸡雏的数量的大小;用三套for循环来控制计算钱数,通过不断的验证来得到我们要求的结果的数量然后将它输出;
#include<iostream>
using namespace std;
int main()
{
int x,y,z;
for(x=1; x<=20; x++)
for(y=1; y<=34; y++)
for(z=1; z<=100; z++)
if(x+y+z==100&&5*x+3*y+z/3==100)
{
cout<<"the cock number is "<<x<<endl;
cout<<"the hen number is "<<x<<endl;
cout<<"the chick number is "<<x<<endl;
cout<<endl;
}
return 0;
}通过循环来判断结果是否符合自己的要求,通过穷举得到自己最后的答案;
723

被折叠的 条评论
为什么被折叠?



