C言語

【C言語】累乗の計算


プログラミング初心者向けの練習問題として「累乗の計算」があります。

今回はそのプログラムの作成方法について解説します。

実際にプログラムを作成してみる

早速ですが、実際にプログラムを作成していきます。

プログラム作成の手順

プログラム作成の手順は以下の通りです。

  1. 任意の数値x、nを入力させる
  2. pow関数を利用してxのn乗を計算する

実装例

上記の手順に従ってプログラムを作成します。

#include <stdio.h>
#include <math.h>

int main(void){

  /* 変数を定義する */
  int x, y, n;

  /* 数値の入力を促すメッセージを表示 */
  printf("Enter the x : \n");
  scanf("%d", &x);
  printf("Enter the n : \n");
  scanf("%d", &n);
  printf("\n");

  /* pow関数を利用して累乗の計算を行う */
  printf("pow(x, n) = %lf\n", pow(x, n));

  return 0;
}

このプログラムを実行すると以下の出力結果が得られます。

Enter the x : 
3
Enter the n : 
2

pow(x, n) = 9.000000

結果から適切に計算できていることがわかります。

pow関数を利用しないプログラム

先程はpow関数を利用して累乗の計算を実装しましたが、pow関数を利用しなくてもこの計算は実現可能です。

プログラム作成の手順

プログラム作成の手順は以下の通りです。

  1. 任意の数値x、nを入力させる
  2. xにn-1回xを掛ける(xのn乗になる)

実装例

上記の手順に従ってプログラムを作成します。

#include <stdio.h>

int main(void){

  /* 変数を定義する */
  int x, n;

  /* 数値の入力を促すメッセージを表示 */
  printf("Enter the x : \n");
  scanf("%d", &x);
  printf("Enter the n : \n");
  scanf("%d", &n);
  printf("\n");

  /* 累乗の計算を行う */
  for(int i=0; i<n-1; i++){
    x *= x;
  }
  printf("pow(x, n) = %d\n", x);

  return 0;
}

このプログラムを実行すると以下の出力結果が得られます。

Enter the x : 
3
Enter the n : 
2

pow(x, n) = 9

結果から適切に計算できていることがわかります。