C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#で再帰を使用して2つの数値の積を求める方法

まず、乗算する2つの数値を設定します。

val1 = 10;
val2 = 20;

次に、積を求めるためのメソッドを呼び出します。

product(val1, val2);

再帰の仕組み

productメソッド内では、再帰呼び出しによって積が計算されます。具体的には、以下のようにval2の回数だけval1を加算することで乗算を実現しています。

val1 + product(val1, val2 – 1)

この処理は、val2が0になるまで繰り返されます。val2が0になった時点で0を返すのが再帰の終了条件(ベースケース)です。たとえば「10 × 20」の場合、「10 + 10 + … + 10(20回)」という計算が行われ、結果として200が得られます。

また、val1がval2より小さい場合には引数を入れ替えて再度呼び出すことで、再帰の回数を最小限に抑え、処理の効率化を図っています。

サンプルコード

それでは、再帰を使って2つの数値の積を求める完全なコードを見てみましょう。

using System;
class Calculation {
   public static void Main() {
      int val1, val2, res;
      // 2つの数値
      val1 = 10;
      val2 = 20;
      // 積を求める
      Demo d = new Demo();
      res = d.product(val1, val2);
      Console.WriteLine("{0} x {1} = {2}", val1, val2, res);
      Console.ReadLine();
   }
}
class Demo {
   public int product(int val1, int val2) {
      if (val1 < val2) {
         return product(val2, val1);
      } else if (val2 != 0) {
         return (val1 + product(val1, val2 - 1));
      } else {
         return 0;
      }
   }
}

このプログラムを実行すると、コンソールには次のように結果が表示されます。

10 x 20 = 200
  1. Pythonの再帰関数を使って自然数の合計を求める方法

    再帰関数とは自分自身を呼び出す関数のことを「再帰関数」と呼びます。再帰処理をそのままにしておくと無限ループに陥ってしまうため、再帰呼び出しは必ず条件分岐の中に記述し、特定の条件を満たした時点で処理を終了させるのが基本です。自然数の合計を求めるPythonコード次のプログラムでは、ユーザーから入力された数値を受け取り、それを引数として rsum() 関数に渡します。rsum() 関数は、引数を1ずつ減らしながら自分自身を再帰的に呼び出し続け、引数が1に達したところで再帰を終了します。def rsum(n): if n <= 1: return n else:

  2. Pythonで自然数の合計を求める3つの方法【while文・for文・sum関数】

    Pythonでは、自然数の合計を求める方法がいくつかあります。この記事では、whileループ、forループ、そして組み込み関数sum()を使った3つの方法を、具体的なコード例とともにわかりやすく解説します。 方法1:whileループを使う whileループを使用すると、変数iの値を1ずつ増やしながら、その値を累積的に加算していくことができます。以下の例では、最初の10個の自然数(1から10まで)の合計を計算しています。 s,i=0,0 n=10 while i<n: i=i+1 s=s+i print ("sum of first 10 natural num