算法基础一 穷举法

/*穷举法*/
/*鸡兔同笼35头,94足,鸡兔各几只?*/
#include<stdio.h>
const int Num = 35;
const int Foots = 94;
int main()
{
    int cN;//鸡
    int rN;//兔
    for (cN = 0; cN <= 35; cN++)
    {
        rN = Num - cN;
        if (Foots == cN * 2 + rN * 4 )
        {
            printf("鸡:%d,兔:%d\n",cN,rN);
        }
    }
}
//穷举法即枚举所有可能性,最简单的算法,唯一需要注意的是结束枚举的约束条件
时间: 2024-12-25 15:09:54

算法基础一 穷举法的相关文章

穷举法解决旅行商问题

一.问题描述 如图所示,一个旅行商从A点出发,需要不重复地走遍5个城市ABCDE,最后回到A.每个城市之间的花费(即权值)如图所示,现在要求找出一条总花费最小的路径,即权值和为最小的路径. 二.     算法说明 1.    算法一: 登山法(贪心法) 即在每一个城市出发前比较接下来所能走的城市花费(权值),找出权值最小的走. 优缺点:由于只是在每个城市局部地考虑权值最小,但当走完所用城市后,所得到权值和不一定为最小,所以采用此算法得不到精确解,但此算法复杂度较低. 2.  算法二:穷举法(本程

1-5、算法设计常用思想之穷举法

穷举法又称穷举搜索法,是一种在问题域的解空间中对所有可能的解穷举搜索,并根据条件选择最优解的方法的总称.数学上也把穷举法称为枚举法,就是在一个由有限个元素构成的集合中,把所有元素一一枚举研究的方法. 使用穷举法解决问题,基本上就是以下两个步骤: • 确定问题的解(或状态)的定义.解空间的范围以及正确解的判定条件: • 根据解空间的特点来选择搜索策略,逐个检验解空间中的候选解是否正确: 解空间的定义解空间就是全部可能的候选解的一个约束范围,确定问题的解就在这个约束范围内,将搜索策略应用到这个约束范

C#跳转语句 迭代法 穷举法

一.跳转语句 break & continue break:跳出循环,终止此循环,不管下面还有多少次,全部跳过. string a=" ", for (int i=1;i<=10;I++) { if(i==5) { break; } a += i +",": } Console.WriteLine(a); 输出结果为 1,2,3,4,5 continue:终止此次循环,直接开始下次循环. string a=" ", for (int

什么叫穷举法?

穷举法的基本思想是根据题目的部分条件确定答案的大致范围,并在此范围内对所有可能的情况逐一验证,直到全部情况验证完毕.若某个情况验证符合题目的全部条件,则为本问题的一个解:若全部情况验证后都不符合题目的全部条件,则本题无解.穷举法也称为枚举法. 用穷举法解题时,就是按照某种方式列举问题答案的过程.针对问题的数据类型而言,常用的列举方法一有如下三种: (1)顺序列举 是指答案范围内的各种情况很容易与自然数对应甚至就是自然数,可以按自然数的变化顺序去列举. (2)排列列举 有时答案的数据形式是一组数的

XTU OJ 1175 Hurry Up(三分法&amp;&amp;穷举法)

 Hurry Up Accepted : 88   Submit : 345 Time Limit : 1000 MS   Memory Limit : 65536 KB Problem Description GG is some what afraid of his MM. Once his MM asks, he will always try his best to rush to their home. Obvious, he can run home in straight li

迭代法,穷举法及其练习题

总结:1.基本语法:数据类型,类型转换,输入输出,运算符(条件运算符) ? : 2.分支语句:有选择性的执行某行或某段代码if ... else if ... else... --最主要,必须要记住并且灵活运用switch ... case ... default... --看到要明白什么意思 分支嵌套:在符合一定条件的基础上继续判断其它条件 3.循环语句:循环四要素:初始条件,循环条件,循环体,状态改变for() //最常用,最好用,最清晰,最灵活{ }必须记住,掌握,灵活运用 while()

15-07-03 语句- for () 循环语句-穷举法

for()  穷举法 用循环把各种可能的情况都走一遍,然后用if条件把满足要求的结果给筛选出来. 例如:1.找100以内的偶数 for (int i = 0; i <= 100; i++) { if (i % 2 == 0) { Console.WriteLine(i); } } 2.小明单位发了50元的购物卡,他到超市买洗化用品,一是牙刷(5元),二是香皂(2元),三是牙膏(10元)怎么可以正好把五十元花完. for (int ys = 0; ys <= 10; ys++) { for (i

for循环的应用:迭代法和穷举法

for()循环.四要素:初始条件,循环条件,状态改变,循环体.执行过程:初始条件--循环条件--循环体--状态改变--循环条件....注意:for的小括号里面分号隔开,for的小括号后不要加分号.for的嵌套.应用:迭代法,穷举法.一.迭代法:有一定规律. 每次循环都是从上次运算结果中获得数据,本次运算的结果都是要为下次运算做准备. 二.穷举法:用循环把各种可能的情况都给走一遍,然后用if条件把满足要求的结果给筛选出来.

穷举法

穷举法是一种用来暴力破解某些数字组合时候用到的一种方法. 实际应用呢,例如:列举一个三位数,是11的倍数,且个位.十位.百位不相等. 代码: #include<iostream> using namespace std; int main() { int i; cout<<"11的倍数,且个位十位百位不相等:"<<endl; for (i=100; i<1000; i++) { //个位 int g = i%10; //十位 int s = i