第10講 関数の再帰的呼び出し=関数の自己再帰の学習
第3話 関数の再帰的呼び出しによる累乗の計算


累乗計算プログラム解答コード例
import java.io.*;
public class A{
  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.*;
public class A{
  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);
  }
}
実行例
java
mからnまでの積解答コード例
import java.io.*;
public class A{
  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);
  }
}
実行例
Java


では次の課題です。
第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部
初心者のための Java 入門 サイト 基礎から応用まで第1部
初心者のための Java 入門 サイト 基礎から応用まで第2部
初心者のための Java 入門 サイト 基礎から応用まで第3部