Javaコラム Javaエンジニアのためのお役立ちコラム

累乗とは?for・while・ループ・再帰法による通りの累乗の求め方

2021年07月13日
SE
累乗とはどのようなものなのでしょうか。
PM
同じ数字を繰り返しかけ算したもののことをいいます。

累乗とは?


累乗とは、同じ数字を繰り返しかけ算したもののことをいいます。23は2の3乗で、これが累乗なのです。

Javaにはpow()メソッドが用意されていますので、pow()メソッドを使えば簡単に累乗を求めることができます。

ここではpow()メソッドの他にループを使用して累乗を求めたり再帰法で累乗を求めたりと、4通りの累乗の求め方を紹介します。

JDKをインストール

ここではJavaのJDKがインストールされていて、PATHが通っているものとして話を進めます。もし、それらがまだで、JAVA_HOMEの設定もなんだかよく分からないという方は検索すればすぐに分かりますので、そちらを参考にして下さい。

きちんとJavaがインストールされているならば、PowerShellを立ち上げて、

などと出力されればOKです。

Javaのpow()メソッドを使って累乗を求める

Javaのpow()メソッドはMathクラスにあります。それではソースコードで確認してみましょう。

これをコンパイルし、実行すると、

20.02.0が400.0であるので、Math.pow()メソッドが正しく機能しました。

pow()メソッドの使い方

pow()メソッドの使い方を簡単に説明します。第一引数にべき乗の対象となる数字の基数、第二引数に何乗するかの数字の指数を指定します。

基数と指数の順番を間違わなければMath.pow()メソッドで累乗が正確に求められます。これがJavaで累乗を求めるのに最も簡単な方法です。

whileループで累乗を求める

pow()メソッドを使わずにwhileループを使って累乗を求めます。それでは早速ソースコードを見てみましょう。

PowerShellを立ち上げて、

と出力されれば完了です。

解説

whileループのソースコードはそれほど難しいことをしていませんので、よく分かるはずです。tempという変数が登場しますが、これはpowerに代入された変数を保持したいためです。

tempにpowerの変数が代入され、

というようにwhileループでtempが0になればループは終了して求める累乗が求められます。ここで、ミソなのは、

です。

forループで累乗を求める

whileループでできたものはforループでもできるはずで、forループで累乗を求めます。早速ソースコードを見てみましょう。

whileループが理解できているならばforの()内のことは説明不要でしょう。ここでミソなのはwhileループ同様、

です。
PowerShellに次のように出力されればOKです。

再帰で累乗を求める

複雑ではありますが、再帰でも累乗が求められます。早速ソースコードを見てみましょう。

PowerShellを立ち上げて、

と出力されればOKです。

解説

再帰法を用いて累乗を求めるにはちょっとしたコツがあります。

まず、

を宣言します。そして、累乗は、

と書き直せます。この書き換えによりpow(n, p)は再帰法でプログラムが書けるのです。

今の場合、指数が0以下は考えていませんので、そのため考えなくてよいので、

でreturnを返しています。

そして、再帰法で最も大切な基底条件です。基数が0の場合は指数は1以上の場合、累乗は0です。それが、

の部分です。

そして、pow(n, p)=n*pow(n, p-1)の再帰の部分が次の箇所です。

これで再帰関数のpow()関数の完成です。

具体的な数値はmain関数で指定すれば累乗が求まるのです。

SE
累乗を求めるのにpow()メソッドやpow()メソッドなどを使うのですね。
PM
Javaの累乗をより理解するために、4通りの求め方を実際に行ってみましょう。

Javaで累乗を求める4つの方法で様々な累乗を求めてみよう

いかがでしたでしょうか。Javaで累乗をまず、Javaに組み込まれているpow()メソッドで、次にwhileループで、次にforループで、最後に再帰法での4通りの求め方を紹介しました。

ここでは20.02.0のみの累乗を求めましたが、色々と数値を変えて色々な累乗を求めてみて下さい。プログラムを自分で書いて数値を変えることは更に理解が深まることなので、是非自分の手で行って下さい。


Javaでのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

recommended

Categories

Tags