zoukankan      html  css  js  c++  java
  • 蓝桥杯 C/C++参考题目 开平方(数学题,迭代法求开方)

    开平方

    如果没有计算器,我们如何求2的平方根?
    可以先猜测一个数,比如1.5,然后用2除以这个数字。如果我们猜对了,则除法的结果必然与我们猜测的数字相同。我们猜测的越准确,除法的结果与猜测的数字就越接近。
    根据这个原理,只要我们每次取猜测数和试除反馈数的中间值作为新的猜测数,肯定更接近答案!这种计算方法叫做“迭代法”。

    下面的代码模拟了如何用手工的方法求2的平方根的过程。请填写缺少的代码。

    把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。

    1     double n = 2;
    2     double a = 0;
    3     double b = n;
    4     while(fabs(a-b)>1E-15)
    5     {
    6         a = (a+b)/2;
    7         b = __________;
    8     }
    9     printf("%f
    ", a);

      水题,数学题,迭代法求开方

      a为每次取的猜测数,b为所谓的“试除反馈数”,实际上就是 b=n/a。如果猜数a大了,b就小;猜数a小了,b就大;所以不断取他们的中间值( (a+b)/2 )就会越来越接近开方的正确结果。直到他们的差fabs(a-b)小于1E-15的精度限制,就认为猜数a就是正确的开方结果。

      代码:

     1 #include <iostream>
     2 #include <stdio.h>
     3 #include <cmath>
     4 using namespace std;
     5 
     6 int main()
     7 {
     8     double n = 2;
     9     double a = 0;
    10     double b = n;
    11     while(fabs(a-b)>1E-15)
    12     {
    13         a = (a+b)/2;
    14         b = n/a;
    15     }
    16     printf("%f
    ", a);
    17 }

    Freecode : www.cnblogs.com/yym2013

  • 相关阅读:
    Windows Server 2019 mmc无法创建单元
    .NET 设置IE代理
    检测WebService是否存在
    C#读取图片像素
    23种设计模式之简单工厂
    WinForm笔记一:文本框只允许输入数字
    ADO.NET笔记(一)XML导入导出和数据库
    winform中文本框的一些案例
    C#中的二进制序列化和Json序列化
    文件流操作(FileStream,StreamReader,StreamWriter)
  • 原文地址:https://www.cnblogs.com/yym2013/p/3597342.html
Copyright © 2011-2022 走看看