【C言語】整数値の平方根を小数点以下まで求める方法

この記事では、C言語で整数値の平方根を小数点以下まで求める方法について解説します。

目次から探す

C言語での平方根の求め方

C言語では、整数値の平方根を小数点以下まで求める方法がいくつかあります。

以下では、それぞれの方法について説明します。

math.hライブラリを使用する方法

C言語では、math.hライブラリを使用することで平方根を求めることができます。

math.hライブラリには、sqrt関数が用意されており、この関数を使用することで平方根を計算することができます。

以下に、math.hライブラリを使用して平方根を求めるサンプルコードを示します。

#include <stdio.h>
#include <math.h>
int main() {
    int num = 16;
    double result = sqrt(num);
    
    printf("平方根: %f\n", result);
    
    return 0;
}

上記のコードでは、math.hライブラリをインクルードし、sqrt関数を使用して整数値の平方根を求めています。

結果はdouble型の変数に格納され、printf関数を使用して表示しています。

ニュートン法を使用する方法

ニュートン法は、近似的な解を求めるための数値解析手法の一つです。

平方根を求める場合にもニュートン法を使用することができます。

以下に、ニュートン法を使用して平方根を求めるサンプルコードを示します。

#include <stdio.h>
double squareRoot(double num) {
    double x = num;
    double y = 1;
    double epsilon = 0.00001;
    
    while (x - y > epsilon) {
        x = (x + y) / 2;
        y = num / x;
    }
    
    return x;
}
int main() {
    int num = 16;
    double result = squareRoot(num);
    
    printf("平方根: %f\n", result);
    
    return 0;
}

上記のコードでは、squareRoot関数を定義し、ニュートン法を使用して平方根を求めています。

xとyの初期値を設定し、xとyの差が一定の範囲(epsilon)以下になるまで繰り返し計算を行います。

最終的な結果はdouble型の変数に格納され、printf関数を使用して表示しています。

二分法を使用する方法

二分法は、区間を半分に分割しながら解を求める手法です。

平方根を求める場合にも二分法を使用することができます。

以下に、二分法を使用して平方根を求めるサンプルコードを示します。

#include <stdio.h>
double squareRoot(double num) {
    double low = 0;
    double high = num;
    double mid;
    double epsilon = 0.00001;
    
    while (high - low > epsilon) {
        mid = (low + high) / 2;
        
        if (mid * mid > num) {
            high = mid;
        } else {
            low = mid;
        }
    }
    
    return mid;
}
int main() {
    int num = 16;
    double result = squareRoot(num);
    
    printf("平方根: %f\n", result);
    
    return 0;
}

上記のコードでは、squareRoot関数を定義し、二分法を使用して平方根を求めています。

lowとhighの初期値を設定し、highとlowの差が一定の範囲(epsilon)以下になるまで繰り返し計算を行います。

最終的な結果はdouble型の変数に格納され、printf関数を使用して表示しています。

以上が、C言語で整数値の平方根を小数点以下まで求める方法の説明です。

それぞれの方法についてサンプルコードを示しましたので、参考にしてください。

目次から探す