Suma cyfr liczby to wynik dodania wszystkich jej cyfr. Prosto, z animacją.
Suma cyfr liczby to po prostu wynik dodania wszystkich jej cyfr. Na przykład dla 1234 suma cyfr to 1 + 2 + 3 + 4, czyli 10.
Jak to policzyć w programie? Potrzebujemy dwóch prostych działań. Reszta z dzielenia przez 10 (n mod 10) zawsze daje ostatnią cyfrę liczby. Dzielenie bez reszty przez 10 (n div 10) tę ostatnią cyfrę usuwa. Bierzemy więc ostatnią cyfrę, dodajemy ją do sumy, usuwamy ją z liczby i powtarzamy, aż z liczby zostanie zero.
Dlaczego akurat przez 10? Bo liczby zapisujemy w systemie dziesiętnym. Gdybyśmy pracowali na zapisie dwójkowym, tak samo użylibyśmy mod 2 i div 2.
Na maturze: suma cyfr rzadko jest celem sama w sobie. Najczęściej to element większego zadania – na przykład sprawdzania, czy liczba dzieli się przez 3 albo przez 9 (dzieli się wtedy, gdy jej suma cyfr też się dzieli).
Prześledź krok po kroku, jak algorytm zdejmuje cyfry od prawej: podświetlona cyfra to reszta z dzielenia przez 10 (n mod 10), którą dodajemy do sumy, a potem obcinamy liczbę dzieleniem całkowitym (n div 10). Koniec, gdy z liczby zostanie 0.
Naciśnij „Krok", aby zdjąć ostatnią cyfrę, albo „Auto".
funkcja suma_cyfr(n): suma ← 0 dopóki n > 0: suma ← suma + (n mod 10) // dodaj ostatnią cyfrę n ← n div 10 // usuń ostatnią cyfrę zwróć suma
def suma_cyfr(n):
"""Zwraca sumę cyfr liczby n."""
n = abs(n) # na wszelki wypadek dla liczb ujemnych
suma = 0
while n > 0:
suma += n % 10 # bierzemy ostatnią cyfrę
n //= 10 # usuwamy ostatnią cyfrę
return suma
# Przyklady uzycia
print(suma_cyfr(1234)) # Wynik: 10
print(suma_cyfr(99999)) # Wynik: 45#include <iostream>
using namespace std;
int suma_cyfr(int n) {
n = abs(n); // na wszelki wypadek dla liczb ujemnych
int suma = 0;
while (n > 0) {
suma += n % 10; // bierzemy ostatnią cyfrę
n /= 10; // usuwamy ostatnią cyfrę
}
return suma;
}
int main() {
cout << suma_cyfr(1234) << endl; // Wynik: 10
cout << suma_cyfr(99999) << endl; // Wynik: 45
}Daje ostatnią cyfrę liczby, czyli resztę z dzielenia przez 10. Na przykład 1234 mod 10 to 4.
Usuwa ostatnią cyfrę – to dzielenie przez 10 bez reszty. Na przykład 1234 div 10 to 123.
Żeby pętla się skończyła, gdy zabraknie cyfr. Przy n >= 0 po dojściu do zera kręciłaby się bez końca.
Najczęściej przy sprawdzaniu, czy liczba dzieli się przez 3 albo 9, oraz w wielu zadaniach maturalnych o cyfrach liczby.
Policz sumę cyfr i wpisz wynik, potem kliknij Sprawdź.
Suma cyfr liczby 472 to , liczby 2025 to , a liczby 1000 to .
Uzupełnij tabelę:
| Liczba | Suma cyfr |
|---|---|
| 88 | |
| 305 | |
| 9999 |
Ostatnią cyfrę bierzemy działaniem , a usuwamy ją działaniem .
O(log n)O(1)Liczba kroków jest równa liczbie cyfr, a tych jest mniej więcej tyle, ile wynosi log z liczby – dlatego czas to O(log n). Dodatkowej pamięci prawie nie zużywamy (O(1)), bo trzymamy tylko sumę i skracaną liczbę.
Do tego hasła nie mamy jeszcze przypisanych pojedynczych zadań. Cały spis zadań maturalnych z tego działu jest tutaj:
Zagadnienia z tego samego obszaru matury – warto je powtórzyć razem: