Nhân hai số bằng đệ quy: a × b = a + a × (b-1) với điều kiện dừng b = 0. Tương tự cộng lặp b lần.
Ví dụ cơ bản
using System;
class Program
{
static int MultiplyRecursive(int a, int b)
{
// Đảm bảo b >= 0 để tránh đệ quy vô hạn
if (b < 0) return -MultiplyRecursive(a, -b);
if (b == 0) return 0;
return a + MultiplyRecursive(a, b - 1);
}
static void Main()
{
int val1 = 10, val2 = 20;
int result = MultiplyRecursive(val1, val2);
Console.WriteLine($"{val1} × {val2} = {result}");
}
}
Kết quả đầu ra
10 × 20 = 200
Tối ưu: Đệ quy đuôi (Tail Recursion) - C# không tối ưu tự động
static int MultiplyTailRecursive(int a, int b, int acc = 0)
{
if (b == 0) return acc;
return MultiplyTailRecursive(a, b - 1, acc + a);
}
Lưu ý: Đệ quy nhân chỉ mang tính học tập. Dùng toán tử * cho production. Cẩn stack overflow với b lớn (> ~10000).