C# 查找问题

来源:互联网 发布:淘宝梦想世界 编辑:程序博客网 时间:2024/06/11 06:31
查找问题是指这么一种场景,在一个样本范围内,是否存在需要的数据。比如,查找100-200之间是否存在水仙花数。这里说的查找问题和其他遍历问题的根本区别在于,查找问题不关心找到的数据是什么,仅仅关心是否找到。在解决该问题的时候,往往使用以下的方案:第一步:定义一个bool变量isFind,表示是否找到,由于现在还没有开始查找,自然还没有找到,所以,一开始,该变量的值是false。bool isFind = false;第二步:遍历样本,寻找需要的数据,若找到了,把变量isFind设置为true。由于只关心是否找到,不关心找到过少个,因此,既然找到了,就没有必要继续找下去,立即退出循环。for (遍历样本){    if (样本数据满足要求)    {        isFind = true; // 记录:找到了        break;// 不需要继续寻找,结束for循环    }}第三步:遍历结束后,判断isFind变量中的结果,看是否找到,做后续处理。if (isFind){    //找到了}else{    //没有找到}仔细阅读上面三个步骤,理解其思维过程。现在,用一些例子来演示查找问题。查找100-200之间是否存在水仙花数根据之前分析的查找问题的解题思路,可以使用如下代码结构://第一步bool isFind = false; // 查找开始前,没有找到//第二步for (int i = 100; i <= 200; i++){    // 判断i是否是水仙花数    int a = i / 100 % 10; //百位    int b = i / 10 % 10; //十位    int c = i % 10; //个位    if (a * a * a + b * b * b + c * c * c == i)    {        isFind = true; //找到了!i是水仙花数        break; // 无须继续寻找,结束循环    }}//第三步if (isFind){    Console.Write("100-200之间存在水仙花数");//找到了}else{    Console.Write("100-200之间没有水仙花数");//没有找到}

1 0
原创粉丝点击