枚举算法
也称为穷举算法,指的是按照问题本身的性质,一 一列举出该问题所有可能的解,并在逐一列举的过程中,将它们逐一与目标状态进行比较以得出满足问题要求的解。在列举的过程中,既不能遗漏也不能重复
枚举思路:
1.将所有可能性全部-一列举
2.判断列举的可能性是否满足需求
3.保留满足需求的可能性
水仙花例题:
水仙花数,又称阿姆斯特朗数,是指一个3位数,它的每个位上的数字的n次幂之和等于它本身。例如:153是一个水仙花数,因为153=1^3+53+33输出所有的水仙花数。
分析:
1.1.将所有可能性全部–列举 100~999;
2.判断列举的可能性是否满足需求,各个位数的三次方之和是否等于自身
3.保留满足需求的可能性,满足条件的直接输出
代码示例:
#include <iostream>
using namespace std;
int main()
{
int num,ge,shi,bai;
for(int i=100;i<1000;i++){
ge=i%10;
shi=i/10%10;
bai=i/100;
if(ge+shi+bai){
cout<<i;
}
}
return 0;
}