4225 - Ad Cif: Difference between revisions

From Bitnami MediaWiki
Pop Giulia (talk | contribs)
Pagină nouă: n = int(input()) s = 0 max_dreapta = -1 while n > 0: cifra = n % 10 if cifra > max_dreapta: s += cifra max_dreapta = cifra n //= 10 print(s)
 
Pop Giulia (talk | contribs)
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
Sursa: [https://www.pbinfo.ro/probleme/4225/adcif]
==Cerința==
Se dă un număr natural nenul n. Trebuie să determinați suma anumitor cifre din n. O cifră poate fi adunată la sumă numai dacă ea este strict mai mare decât toate celelalte din dreapta sa. De exemplu, dacă n = 3712531, atunci suma va fi 7+5+3+1. De exemplu, 7 se adaugă la sumă pentru că în dreapta sa se află cifrele 1,2,5,3,1, toate strict mai mici. La fel, la sumă s-a adunat 3 deoarece în dreapta sa se află doar cifra 1. S-a adunat și 1 pentru că în dreapta sa nu se află nicio cifră.
==Date de intrare==
Programul citește de la tastatură numărul n.
==Date de ieșire==
Programul va afișa pe ecran numărul S, reprezentând suma cifrelor menționate în cerință.
==Restricții și precizări==
1 ≤ n ≤ 2.000.000.000
==Exemplul 1==
;Intrare
:4713
;Ieșire
:10
==Explicație==
Se adună cifrele 7+3 = 10.
==Exemplul 2==
;Intrare
:12345
;Ieșire
:5
==Explicație==
Suma este formată doar din cifra unităților.
==Exemplul 3==
;Intrare
:987654321
;Ieșire
:45
==Explicație==
Se adună toate cifrele.
==Rezolvare==
<syntaxhighlight lang="python" line>
n = int(input())
n = int(input())
s = 0
s = 0
max_dreapta = -1
max_dreapta = -1
while n > 0:
while n > 0:
     cifra = n % 10
     cifra = n % 10
Line 9: Line 60:
         max_dreapta = cifra
         max_dreapta = cifra
     n //= 10
     n //= 10
print(s)
print(s)
</syntaxhighlight>

Latest revision as of 12:37, 20 May 2023

Sursa: [1]

Cerința[edit]

Se dă un număr natural nenul n. Trebuie să determinați suma anumitor cifre din n. O cifră poate fi adunată la sumă numai dacă ea este strict mai mare decât toate celelalte din dreapta sa. De exemplu, dacă n = 3712531, atunci suma va fi 7+5+3+1. De exemplu, 7 se adaugă la sumă pentru că în dreapta sa se află cifrele 1,2,5,3,1, toate strict mai mici. La fel, la sumă s-a adunat 3 deoarece în dreapta sa se află doar cifra 1. S-a adunat și 1 pentru că în dreapta sa nu se află nicio cifră.

Date de intrare[edit]

Programul citește de la tastatură numărul n.

Date de ieșire[edit]

Programul va afișa pe ecran numărul S, reprezentând suma cifrelor menționate în cerință.

Restricții și precizări[edit]

1 ≤ n ≤ 2.000.000.000

Exemplul 1[edit]

Intrare
4713
Ieșire
10

Explicație[edit]

Se adună cifrele 7+3 = 10.

Exemplul 2[edit]

Intrare
12345
Ieșire
5

Explicație[edit]

Suma este formată doar din cifra unităților.

Exemplul 3[edit]

Intrare
987654321
Ieșire
45

Explicație[edit]

Se adună toate cifrele.

Rezolvare[edit]

<syntaxhighlight lang="python" line> n = int(input()) s = 0 max_dreapta = -1 while n > 0:

   cifra = n % 10
   if cifra > max_dreapta:
       s += cifra
       max_dreapta = cifra
   n //= 10

print(s) </syntaxhighlight>