StartAlgorytmyDla początkującychSuma cyfr liczby całkowitej
Baza Wiedzy
Wersja offline serwisu przeznaczona na urządzenia z systemem Android.

Darowizny
darowiznaWspomóż rozwój serwisu


Nagłówki RSS
Kanał artykuły
Kanał implementacje
Kanał komentarze
Kanał forum


Bookmarki









Sonda
Implementacji w jakim języku programowania poszukujesz?
 
Suma cyfr liczby całkowitej
Ocena użytkowników:+++++ / 4
SłabyŚwietny 
Wpisany przez Tomasz Lubiński
wtorek, 11 stycznia 2011 13:45
Załóżmy, że mamy daną liczbę x i chcemy obliczyć sumę jej cyfr. Czyli, na przykład, jeżeli mamy daną liczbę x = 148, to w wyniku otrzymamy 1+4+8 = 13.

By rozwiązać to zadanie potrzebne będą nam dwie operacje:
By obliczyć sumę cyfr liczby x musimy wykonać następujące kroki:

Operację obliczania sumy cyfr liczby całkowitej x możemy zapisać następującym schematem blokowym:

schemat blokowy - suma cyfr liczby całkowitej


Przykład:
Niech x będzie równe 148.
Na początku wynik ustawiamy na 0.
Dochodzimy do decyzji, czy x jest równe 0?
Nie, zatem:
wynik = wynik + (x mod 10) = 0 + (148 mod 10) = 0 + 8 = 8
x = x div 10 = 148 div 10 = 14
Sprawdzamy po raz kolejny, czy x jest równe 0?
Nie, zatem:
wynik = wynik + (x mod 10) = 8 + (14 mod 10) = 8 + 4 = 12
x = x div 10 = 14 div 10 = 1
Sprawdzamy po raz kolejny, czy x jest równe 0?
Nie, zatem:
wynik = wynik + (x mod 10) = 12 + (1 mod 10) = 12 + 1 = 13
x = x div 10 = 1 div 10 = 0
Sprawdzamy po raz kolejny, czy x jest równe 0?

Tak, zatem obliczyliśmy sumę cyfr liczby x=148, i wynik ten wynosi 13.

Przykład w JavaScript:
Podaj liczbę (dziesiętnie):
Podaj podstawę:

Dla zaawansowanych:
Przedstawiony algorytm oblicza sumę liczb dla systemu dziesiętnego. Można go jednak łatwo zaadoptować do obliczania sumy cyfr dla systemu liczbowego o dowolnej podstawie (np. dwójkowego lub szesnastkowego). W tym celu wystarczy przerobić fragment:
wynik = wynik + (x mod 10)
x = (x div 10)
na:
wynik = wynik + (x mod podstawa)
x = (x div podstawa),
gdzie podstawa jest wartością podstawy systemu liczbowego, dla którego chcemy obliczyć sumę cyfr (2 dla systemu dwójkowego, 10 dla dziesiętnego, 16 dla szesnastkowego, itp...). Jeżeli chcesz zobaczyć jak liczby dziesiętne wyglądają w innych systemach przeczytaj artykuł zamiana z i na system dziesiętny


Autor Język programowania Komentarz Otwórz Pobierz Ocena
Tomasz Lubiński C# MS Visual Studio .net
Implementacja w C#
Implementacja w C#
++++- / 2
Tomasz Lubiński C/C++
Implementacja w C/C++
Implementacja w C/C++
++++- / 4
Marian C/C++ C++
Implementacja w C/C++
Implementacja w C/C++
++++- / 2
Tomasz Lubiński Delphi/Pascal Borland Delphi 5
Implementacja w Delphi/Pascal
Implementacja w Delphi/Pascal
++--- / 4
Tomasz Lubiński Java
Implementacja w Java
Implementacja w Java
++++- / 2
Tomasz Lubiński Java Script
Implementacja w Java Script
Implementacja w Java Script
++++- / 2
Dominik Goździuk Perl
Implementacja w Perl
Implementacja w Perl
----- / 0
_marass_ Php
Implementacja w Php
Implementacja w Php
++++- / 3
Jakub Konieczny Python
Implementacja w Python
Implementacja w Python
+++++ / 2
 
Dodaj własną implementację tego algorytmu
  • Zaloguj się na stronie
Plik:
Język programowania:
Komentarz:
  By móc dodać implementacje zaloguj się na stronie



Poprawiony: piątek, 27 maja 2011 07:18

Komentarze

 
photo
0 # Daniel wilkowski 2011-02-08 20:37
Można chyba lepiej
Zamienić liczbę na string;
Znaleźć długość ciągu;
pętla 1 do długość
S = S + Ciąg[I];
I = I + 1;
Odpowiedz | Odpowiedz z cytatem | Cytować
 
 
photo
0 # Asiofhadsiop 2011-10-28 22:57
Funkcja co zmienia z liczby na stringa wykonuje właśnie ten algorytm. Tylko różnica jest taka, że w takim Pascalu musisz sobie zmieniać wartości z chara na byte, co jest trochę niewygodne.
Odpowiedz | Odpowiedz z cytatem | Cytować
 

Dodaj komentarz

Kod antysapmowy
Odśwież