穷举算法是最基本的算法思想,其基本思想就是从所有可能的情况中搜索正确的答案,其步骤如下:
1、对于一种可能的情况,计算其结果
2、判断结果是否满足需求,如果不满足则执行第一步来搜索下一个可能的情况,如果满足需求,则表示寻找到一个正确的答案
在使用穷举算法时,需要明确问题的答案的范围,这样才可以在指定范围内搜索答案。指定范围之后,就可以使用循环语句和条件判断语句逐步验证候选答案的正确性,从而得到需要的正确答案
接下来我将使用该算法来解决一个我国古代非常有名的问题,鸡兔同笼问题!
代码如下:
#include <stdio.h>
int qiongju(int head,int feet,int *chicken,int* rabbit)
{
int flag = 0;
int i,j;
for(i=0;i<=head;i++)
{
j = head - i;
if(feet == i*2+j*4)
{
flag = 1;
*chicken = i;
*rabbit = j;
}
}
return flag;
}
int main()
{
int chicken,rabbit,head,feet,flag;
printf("鸡兔同笼问题\n");
printf("请输入多少个头:");
gets(head);
printf("请输入有多少个脚");
gets(feet);
flag = qiongju(head,feet,&chicken,&rabbit);
if(flag == 1)
{
printf("鸡:%d,兔子:%d\n",chicken,rabbit);
}
}