循环附加练习3

1、猴子吃桃问题。猴子第一天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第十天早上再想吃时,就只剩下一个桃子了。求第一天共摘多少个桃子?

主要代码:

            int x = 1;
            for (int i = 10; i > 1; i--)
            {
                x = (x + 1) * 2;
            }
            Console.WriteLine("第一天摘了{0}个桃子。", x);
            Console.ReadLine();

结果:

2、用迭代法求。求平方根的迭代公式为。要求前后两次求出的x的差的绝对值不能超过10-5

主要代码:

            Console.Write("请输入:");
            double a = double.Parse(Console.ReadLine());
            double x0 = a / 2;
            double x1 = (x0 + (a / x0)) / 2;
            for (; Math.Abs(x1 - x0) >= 1e-5; )
            {
                x0 = x1;
                x1 = (x0 + (a / x0)) / 2;
            }
            Console.WriteLine(x1);
            Console.ReadLine();

结果:

3、用牛顿迭代法求方程2x3-4x2+3x-6=0在1.5附近的根。

主要代码:

            double x0 = 0;
            double x1 = 1.5;
            for (; Math.Abs(x1 - x0) >= 1e-5; )
            {
                x0 = x1;
                x1 = x0 - ((2 * x0 * x0 * x0 - 4 * x0 * x0 + 3 * x0 - 6) / (6 * x0 * x0 - 8 * x0 + 3));
            }
            Console.WriteLine(x1);
            Console.ReadLine();

结果:

4、用二分法求上题方程2x3-4x2+3x-6=0在(-10,10)之间的根。

主要代码:

            while (true)
            {
                Console.Write("请输入x1=:");
                double x1 = double.Parse(Console.ReadLine());
                Console.Write("请输入x2=:");
                double x2 = double.Parse(Console.ReadLine());
                double x0 = 0;
                double fx0 = 2 * x0 * x0 * x0 - 4 * x0 * x0 + 3 * x0 - 6;
                double fx1 = 2 * x1 * x1 * x1 - 4 * x1 * x1 + 3 * x1 - 6;
                double fx2 = 2 * x2 * x2 * x2 - 4 * x2 * x2 + 3 * x2 - 6;
                if (fx1 * fx2 < 0)
                {
                    for (; Math.Abs(fx0) >= 1e-5; )
                    {
                        x0 = (x1 + x2) / 2;
                        fx0 = 2 * x0 * x0 * x0 - 4 * x0 * x0 + 3 * x0 - 6;
                        if (fx0 * fx1 < 0)
                        {
                            x2 = x0;
                            fx2 = fx0;
                        }
                        else
                        {
                            x1 = x0;
                            fx1 = fx0;
                        }
                    }
                }
                Console.WriteLine(x0);
            }
            Console.ReadLine();

结果:

原文地址:https://www.cnblogs.com/bosamvs/p/5465665.html