C#中的遍历、迭代、递归

算法的定义

有限的指令的序列

  • 有穷性
  • 确定性
  • 可行性

遍历

遍历求水仙花数:“水仙花数”是指一种三位数,它的各位数字的立方和等于该数字本身。

        public static void Main()
        {
            for(int i = 100;i < 1000;i++)
            {
                int tmpi = i;
                int a = tmpi % 10;
                tmpi /= 10;
                int b = tmpi % 10;
                tmpi /= 10;
                int c = tmpi;
                //Console.WriteLine(a + " " + b + " " + c);
                if (i == a * a * a + b * b * b + c * c * c)
                    Console.WriteLine(i);
            }


        }

直接枚举个数、十位、百位更能体现遍历。

迭代

        public static void Main()
        {
            int cnt = 0;  // 迭代次数
            double x1 = 2, x2 = 0;
            while(true)
            {
                x2 = x1 - (x1 * x1 * x1 - x1 - 1) / (3 * x1 * x1 - 1);  // 迭代公式
                if (Math.Abs(x2 - x1) > 0.000001)
                {
                    x1 = x2;
                    cnt++;
                }
                else break;
            }
            Console.WriteLine("方程的根:" + x1);
            Console.WriteLine("迭代次数:" + cnt);
        }
    }

递归

递归求阶乘

 

posted @ 2020-03-16 16:20  Rogn  阅读(1650)  评论(0编辑  收藏  举报