Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Tổng các chữ số của số nguyên bằng đệ quy C#

Đệ quy tính tổng chữ số: sum(n) = n%10 + sum(n/10), dừng khi n==0.

Ví dụ minh họa

using System;

class Program
{
    static int SumDigits(int n)
    {
        if (n == 0) return 0;
        // Xử lý số âm
        n = Math.Abs(n);
        return (n % 10) + SumDigits(n / 10);
    }
    
    static void Main()
    {
        int[] testNumbers = { 22, 12345, -987, 0, 1000 };
        
        foreach (int n in testNumbers)
        {
            int sum = SumDigits(n);
            Console.WriteLine($"Số: {n,6} → Tổng chữ số: {sum}");
        }
    }
}

Kết quả đầu ra

Số:     22 → Tổng chữ số: 4
Số: 12345 → Tổng chữ số: 15
Số:  -987 → Tổng chữ số: 24
Số:      0 → Tổng chữ số: 0
Số:   1000 → Tổng chữ số: 1

Phiên bản lặp (Iterative - hiệu quả hơn)

static int SumDigitsIterative(int n)
{
    n = Math.Abs(n);
    int sum = 0;
    while (n > 0)
    {
        sum += n % 10;
        n /= 10;
    }
    return sum;
}

Lưu ý: Đệ quy gây stack overflow với số rất lớn (nhiều chữ số). Phiên bản lặp an toàn hơn. Xử lý số âm bằng Math.Abs.