第10講 関数の再帰的呼び出し=関数の自己再帰の学習
第3話 関数の再帰的呼び出しによる累乗の計算
累乗計算プログラム解答コード例
import java.io.*;
class r{
public static void main(String args[]) throws IOException{
BufferedReader a = new BufferedReader(new InputStreamReader(System.in));
System.out.println("1からnまでの積をもとめます。");
System.out.println("いくつまで掛けるかキーボードから入力してください。");
System.out.print ("n=");
int n;
n=Integer.parseInt(n.readLine());
System.out.print ("1からnまでの積=");
System.out.println(f(n));
}
public static int f(int n){
if(n-1>=0){
n*=f(n-1);
}
else{
return(1);
}
return(n);
}
}
実行結果例
注意点は、一番小さい人形の値を今回は1にしなければならないことです。
0にしてしまうと、何を掛けても0になってしまいます。
では皆さん、第3話の和の算出プログラムと今話の累乗プログラムを引数を2つにして、
mからnまでの和、
mからnまでの積を求めるプログラムを考えましょう。
解答例は30行下。
mからnまでの和解答コード例
import java.io.*;
class r{
public static void main(String args[]) throws IOException{
BufferedReader a = new BufferedReader(new InputStreamReader(System.in));
System.out.println("mからnまでの和をもとめます。");
System.out.println("いくつから足すかキーボードから入力してください。");
System.out.print ("m=");
int m,n;
m=Integer.parseInt(a.readLine());
System.out.print ("n=");
n=Integer.parseInt(a.readLine());
System.out.print ("mからnまでの和=");
System.out.println(f(m,n));
}
public static int f(int m,int n){
if(n-1>=m){
n+=f(m,n-1);
}
else{
return(m);
}
return(n);
}
}
実行例
mからnまでの積解答コード例
import java.io.*;
class r{
public static void main(String args[]) throws IOException{
BufferedReader a = new BufferedReader(new InputStreamReader(System.in));
System.out.println("mからnまでの積をもとめます。");
System.out.println("いくつから掛けるかキーボードから入力してください。");
System.out.print ("m=");
int m,n;
m=Integer.parseInt(a.readLine());
System.out.print ("n=");
n=Integer.parseInt(a.readLine());
System.out.print ("mからnまでの積=");
System.out.println(f(m,n));
}
public static int f(int m,int n){
if(n-1>=m){
n*=f(m,n-1);
}
else{
return(m);
}
return(n);
}
}
実行例
では次の課題です。
第9講 配列とfor文を利用して3次魔方陣を作ろう
第3話 3次順列の生成
において、for文を用いた3次順列を作りましたが、
関数の再帰的呼び出しを用いて、
普遍的な(汎用的な=一般的な)n次順列作成プログラムを考えてみましょう。
第2話へ 第4話へ
VB講義へ
VB講義基礎へ
vc++講義へ第1部へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 入門 C++ 入門
基礎から応用まで第1部
初心者のための VC++による C言語 入門 C++ 入門
基礎から応用まで第2部
初心者のための
VC++による C言語 入門 C++ 入門 基礎から応用まで第3部