Oblicza sumę cyfr liczby naturalnej za pomocą operacji modulo i dzielenia całkowitego.
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.
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
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
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:
| Liczba | Suma cyfr |
|---|---|
| 88 | |
| 305 | |
| 1234 | |
| 9999 |
Ostatnią cyfrę liczby wyciągamy operacją , a usuwamy ją operacją .
O(log n)O(1)Zagadnienia z tego samego obszaru matury – warto je powtórzyć razem: