C言語で2乗を計算するには「pow関数」を使います。
#include <stdio.h>
#include <math.h>
int main(void){
double answer = pow(3.0, 2.0);
printf("3の2乗は %lf", answer);
}
// 3の2乗は 9.000000
pow関数
pow関数を使うと次のように「べき乗」を計算できます。
pow関数の第1引数には「底」を、第2引数には「指数」を渡します。
pow([底], [指数])
pow関数の戻り値
pow関数の戻り値はdouble型です。
そのため「3の2乗は 9.000000」のように戻り値が「浮動小数点数」の表記になります。
戻り値を整数(int)に変換したいときは「round関数」で丸めます。
#include <stdio.h>
#include <math.h>
int main(void){
int answer = round(pow(3, 2));
printf("3の2乗は %d", answer);
}
// 3の2乗は 9
pow関数の戻り値をround関数に渡すと、整数で結果を得られます。
pow関数を使うときの注意点
pow関数を使うときは以下の点に注意しましょう
- math.hをインクルードする
- コンパイルするときに「-lm」オプションをつける
1. math.hをインクルードする
「math.h」は数学的な関数が含まれている標準ライブラリです。
ソースコードの先頭に次のように書くことで、math.hをインクルードできます。
#include <math.h>
2. コンパイルするときに「-lm」オプションをつける
math.hを使うときは、コンパイルするときに「-lm」オプションをつけます。
- gccコンパイラの場合:「-lm」オプションをつける
- clangコンパイラの場合:「-lm」オプションをつける
- Visual C++コンパイラの場合:リンクオプションに「libm.lib」を指定する
数学ライブラリである「libm」をリンクして、math.hを使えるようになります。
リンクとは「他のソースファイルで定義された関数や変数を結合して、同じプログラムとして実行できるようにする作業」です。
たとえば、gccコンパイラの場合は以下のコマンドでコンパイルします。
gcc program.c -o program -lm
clangコンパイラの場合は以下のコマンドでコンパイルします。
clang program.c -o program -lm
※基本的には「-lm」オプションを明示的につけますが、環境によっては必要がない場合もあるようです。
※べき乗とは?
「ある数を3回掛けること」を3乗、「ある数を3回掛けること」を4乗といいます。
- 3の3乗 → 3³ = 3 x 3 x 3 = 27
- 3の4乗 → 3⁴ = 3 x 3 x 3 x 3 = 81
このように、ある数を繰り返し掛けることを「累乗(るいじょう)」といいます。
累乗は 3² のように、繰り返し掛ける数(3)の右上に、繰り返す回数(2)を小さく書いて表記します。
このとき、右上に小さく書いた数を「指数(しすう)」といいます。
繰り返し掛ける数を「底(てい)」といいます。
累乗と呼ぶのは、指数が「1以上の自然数」の場合だけです。
累乗の指数を「1以上の自然数」以外の数にも発展させたものを「べき乗」といいます。
たとえば、3⁻²や10⁰は冪乗の例です。
C言語のpow関数では累乗だけでなく「べき乗」を計算できます。