Hello!各位小伙伴们大家好,我是FreeBamb,今天我来带大家一起进入算法的世界!我们先从枚举算法开始学习哦!
首先,我给大家普及一下枚举算法的基本概念,枚举算法就是将所有可能的结果进行逐个枚举尝试,进而找到适合条件的数据。说白一点就是利用多重 for 循环将所有的可能进行遍历,最后利用 if 判断语句将我们需要的结果筛选出来。下面,我们用一个简单demo来进行学习。
求100-1000之间的水仙花数(Narcissus)。
#include<stdio.h>
int main(){
// 遍历1-1000之间的数字
for(int i = 1;i<1000;i++){
//得到百位上的数字
int a= i/100;
//得到十位上的数字
int b= i/10%10;
//得到个位上的数字
int c=i%10;
//判断条件,输出数字
if(i==a*a*a+b*b*b+c*c*c) printf("%d
",i);
}
return 0;
}
也许这个demo很多人都会写,但是我想在敲代码时真真会想到这是一个枚举算法的人却不是很多,我认为在学习编程的时候我们需要系统地进行学习,将这些算法思想扎根于我们脑海。最后,再次声明,我是FreeBamb,希望大家对我进行批评指正,也请喜欢算法的小伙伴们关注我哦!与君共勉!