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