穷举与迭代

1.穷举:把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况。

例:


            百鸡百钱:公鸡2文钱一只,母鸡1文钱一只,
            小鸡半文钱一只,总共只有100文钱,
            如何在凑够100只鸡的情况下刚好花完100文钱?

            int n = 0;
            for (int x = 0; x <= 50; x++)
            {
                for (int y = 0; y <= 100; y++)
                {
                    for (int z = 0; z <= 200; z++)
                    {
                        if (x + y + z == 100 && x * 2 + y + z * 0.5 == 100)
                        {
                            Console.WriteLine(x + "只公鸡" + y + "只母鸡" + z + "只小鸡");
                            n++;
                        }
                    }
                }
            }
            Console.WriteLine("共" + n + "种");
            Console.ReadLine();

2.迭代:从初始情况按照规律不断求解中间情况,最终推导出结果。


            五个小朋友排成一队,问第一个多大了,
            第一个说比第二个大两岁,问第二个多大了,
            第二个说比第三个大两岁。。。以此类推,
            问第5个小朋友,说自己3岁了。问第一个小朋友几岁了?

            for方法:

            int a = 3;
            for (int i = 1; i < 5; i++)
            {
                a += 2;
            }
            Console.WriteLine(a);
            Console.ReadLine();

            while方法1:

            int a = 3;
            int i = 1;
            while (i < 5)
            {
                i++;
                a += 2;
            }
            Console.WriteLine(a);
            Console.ReadLine();

            while方法2:


            int a = 3;
            int i = 1;
            while (true)
            {
                i++;
                a += 2;
                if (i == 5)
                {
                    break;
                }
            }
            Console.WriteLine(a);
            Console.ReadLine();

原文地址:https://www.cnblogs.com/shi2172843/p/5609918.html