zoukankan      html  css  js  c++  java
  • 循环附加练习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();

    结果:

  • 相关阅读:
    Java实现 蓝桥杯 历届试题 连号区间数
    Java实现 蓝桥杯 历届试题 连号区间数
    Java实现 蓝桥杯 历届试题 连号区间数
    Java实现 蓝桥杯 历届试题 连号区间数
    Java实现 蓝桥杯 历届试题 连号区间数
    Java实现 蓝桥杯 历届试题 大臣的旅费
    Java实现 蓝桥杯 历届试题 大臣的旅费
    Java实现 蓝桥杯 历届试题 大臣的旅费
    Java实现 蓝桥杯 历届试题 大臣的旅费
    Navicat查询哪些表有指定字段名
  • 原文地址:https://www.cnblogs.com/bosamvs/p/5465665.html
Copyright © 2011-2022 走看看