Informatică, întrebare adresată de szilviaballa, 8 ani în urmă

SOS-informatica
ex:Având în vedere un număr natural n, se adună cifrele acestuia!
Cum trebuie sa fac programul???


artur99: În C++?

Răspunsuri la întrebare

Răspuns de artur99
5

Am atașat codul sursă în poză.

Introducere

Însă pentru a putea înțelege bine cum funcționează acest program trebuie să înțelegem cum funcționează % (MOD) și / (DIV).

a % b => ne ajută să calculăm restul împărțirii lui a la b

a / b   => ne ajută să calculăm câtul împărțirii lui a la b

De exemplu, dacă facem

123 / 10 = 12 (răspunsul întreg ar fi 12,3, dar fiind număr întreg dispare ce e după virgulă)

123 % 10 = 3 (123 împărțit la 10 dă câtul 12 și restul 3)

Deci observăm că dacă facem DIV 10 la un număr, obținem numărul fără ultima cifră:

1234 / 10 = 123

871 / 10 = 87

Iar dacă facem MOD 10, obținem ultima cifră:

1234 % 10 = 4

12839 % 10 = 9

Plan de lucru

Acum, folosind aceste instrucțiuni de mai sus, încercăm să obținem suma cifrelor după următorul parcurs: extragem cumva ultima cifră într-o variabilă, o adunăm într-o altă variabilă de sumă, apoi o eliminăm din n, și repetăm procedura până nu mai rămân cifre în n.

Rezolvare

1. Declarăm un s = 0 în care vom stoca suma, și un c în care vom stoca cifrele pe rând

2. Citim n

3. Începem un while pentru a parcurge cifrele (și ne oprim când nu mai sunt cifre, adică rulăm cât încă n > 0 sau n != 0)

3.1. Calculăm ultima cifră din n (n % 10) și o punem în c (c = n % 10)

3.2. Adunăm această cifră în s-ul nostru (s = s + c)

3.3. Eliminăm ultima cifră din n (n = n / 10)

3.4. Se repetă

4. Când e gata, afișăm s-ul

Anexe:

szilviaballa: Mersi :)
Alte întrebări interesante