Wróć do: Algorytmy
podstawowy cyfrymodulomatura podstawowa z informatyki

Suma cyfr liczby

Oblicza sumę cyfr liczby naturalnej za pomocą operacji modulo i dzielenia całkowitego.

01

Opis

Suma cyfr to klasyczne zadanie z arytmetyki – dla danej liczby naturalnej n obliczamy sumę wszystkich jej cyfr w zapisie dziesiętnym.

Jak to działa? Wykorzystujemy operacje mod 10 (reszta z dzielenia) do wyciągnięcia ostatniej cyfry oraz div 10 (dzielenie całkowite) do "obcięcia" tej cyfry z liczby. Powtarzamy aż liczba zmaleje do zera.

Przykład krok po kroku dla liczby 1234:

krok 1: 1234 mod 10 = 4, suma = 4, n = 123
krok 2: 123 mod 10 = 3, suma = 7, n = 12
krok 3: 12 mod 10 = 2, suma = 9, n = 1
krok 4: 1 mod 10 = 1, suma = 10, n = 0

Na maturze: bazowy element wielu zadań z liczbami – np. test podzielności przez 3 i 9, liczby Armstronga, sprawdzanie palindromów cyfr, NWD-podobne kombinacje.

02

Pseudokod

funkcja suma_cyfr(n):
  suma  0

  dopóki n > 0:
    suma  suma + (n mod 10)   // ostatnia cyfra
    n  n div 10               // usunięcie cyfry

  zwróć suma
03

Implementacja w Pythonie

def suma_cyfr(n):
    """Zwraca sumę cyfr liczby naturalnej n."""
    n = abs(n)  # zabezpieczenie dla liczb ujemnych
    suma = 0

    while n > 0:
        suma += n % 10   # bierzemy ostatnią cyfrę
        n //= 10         # obcinamy ostatnią cyfrę

    return suma


# Wariant rekurencyjny – krócej, ale wolniej dla bardzo dużych liczb
def suma_cyfr_rek(n):
    if n == 0:
        return 0
    return n % 10 + suma_cyfr_rek(n // 10)


# Przykłady użycia
print(suma_cyfr(1234))      # 10
print(suma_cyfr(99999))     # 45
print(suma_cyfr_rek(2026))  # 10
04

Ćwiczenie

Suma cyfr liczby to suma wszystkich jej cyfr w zapisie dziesiętnym. Uzupełnij wyniki i kliknij Sprawdź.

Suma cyfr liczby 472 wynosi , a suma cyfr liczby 2025 to . Dla liczby 1000 suma cyfr wynosi – możesz wpisać liczbę lub słowo.

Oblicz sumę cyfr dla każdej liczby w tabeli:

LiczbaSuma cyfr
88
305
1234
9999

Ostatnią cyfrę liczby wyciągamy operacją , a usuwamy ją operacją .

Złożoność obliczeniowa

CzasowaO(log n)
PamięciowaO(1)

Powiązane zagadnienia