【C言語】再帰関数でべき乗の計算を行う方法

この記事では、再帰関数を使って簡単にべき乗の計算を行う方法を紹介します。

目次から探す

再帰関数を使ったべき乗の計算

べき乗の計算は、ある数を別の数の累乗として表す操作です。

C言語では、再帰関数を使って簡潔にべき乗の計算を行うことができます。

再帰関数を使ったべき乗の計算のアルゴリズム

再帰関数を使ったべき乗の計算のアルゴリズムは以下のようになります。

  1. ベースケースとして、指数が0の場合は1を返す。
  2. 指数が偶数の場合は、指数を半分にし、底を自乗した値を再帰的に計算する。
  3. 指数が奇数の場合は、指数を1減らし、底を自乗した値を再帰的に計算し、その結果に底を掛ける。

このアルゴリズムを再帰関数として実装することで、効率的にべき乗の計算を行うことができます。

サンプルコードの解説

以下に、再帰関数を使ったべき乗の計算のサンプルコードを示します。

#include <stdio.h>
int power(int base, int exponent) {
    if (exponent == 0) {
        return 1;
    } else if (exponent % 2 == 0) {
        int half = power(base, exponent / 2);
        return half * half;
    } else {
        int half = power(base, (exponent - 1) / 2);
        return base * half * half;
    }
}
int main() {
    int base = 2;
    int exponent = 5;
    int result = power(base, exponent);
    printf("%dの%d乗は%dです。\n", base, exponent, result);
    return 0;
}

このサンプルコードでは、powerという再帰関数を定義しています。

power関数は、底と指数を引数として受け取り、べき乗の計算結果を返します。

power関数内では、まずベースケースとして指数が0の場合は1を返します。

それ以外の場合は、指数が偶数か奇数かで処理を分岐させます。

指数が偶数の場合は、指数を半分にし、底を自乗した値を再帰的に計算します。

その結果を2乗して返します。

指数が奇数の場合は、指数を1減らし、底を自乗した値を再帰的に計算し、その結果に底を掛けます。

さらに、その結果を2乗して返します。

メイン関数では、底と指数を適当な値で初期化し、power関数を呼び出してべき乗の計算を行います。

計算結果を表示します。

以上が、再帰関数を使ったべき乗の計算のサンプルコードの解説です。

このように再帰関数を使うことで、簡潔かつ効率的にべき乗の計算を行うことができます。

目次から探す