在c ++中不使用平方根函数计算平方根

时间:2014-04-11 00:12:17

标签: c++

您需要编写自己的算法来计算平方根。写一个 在继续编写C ++程序之前先进行伪代码。不要使用 数学库中的sqrt函数用于计算平方根。创建自己的 平方根算法。 你的程序应该适应所有非完美的方形数字和负数 用户输入的整数。在这些情况下,程序应该提示用户 没有进入完美的广场。 该程序应该允许用户有三次机会进入一个完美的正方形。如果 用户无法在三个机会中输入一个完美的正方形然后程序 应该退出 4.您将在C ++程序中使用函数。创建用户定义的功能 名称sqroot。这应该是您实现自己的功能 平方根算法。此函数应返回一个整数并仅接受一个整数 输入参数,也是整数类型。

我已经尝试了但是卡住了PLIZ帮助

#include <iostream>
#include <cmath>
#include <math.h>
#include <stdlib.h>

using namespace std;

int main (){
    int test;
    int square;
    int answer;
    int i=0;

    cout << "enter a perfect sqare ";
    cin >> square;

    answer = pow(square, 0.5);

    test = square % answer;
    if (test==0){
        cout << "the square is: " << answer;

    }

    if (test!=0){

        cout << "enter a perfect sqare ";
        cin >> square;  
        answer = pow(square, 0.5);

        test = square % answer;
        cout << "the square is: " << answer;
    }










return 0;

}

2 个答案:

答案 0 :(得分:1)

请参阅Newton-Raphson algorithm.

来自维基百科:&#34;一种用于连续更好地逼近实值函数的根(或零)的方法&#34;。
让我们说你正试图找到&#39; a&#39;的根源。 那么基本上,你试图找到函数的根源:
f(x)= x ^ 2 - a

此外,这种方法也很快。

答案 1 :(得分:0)

如果你真的想给da'Prof留下深刻印象,你可以使用1/2的幂二次扩展近似:

enter image description here

enter image description here

= enter image description here

a 是您输入数字中的下一个完美正方形(我确信您可以轻松计算它和它的平方根)。将其转换为公式,将 x 作为输入数字,不要忘记为分数使用浮点变量,并使用答案执行您喜欢的操作(在您的情况下将其舍入为整数)。

我知道这只是一个近似值,但它对于整数答案应该足够好了。

http://en.wikipedia.org/wiki/Binomial_theorem