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
Line 1: Line 1:
==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==
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 57:
         max_dreapta = cifra
         max_dreapta = cifra
     n //= 10
     n //= 10
print(s)
print(s)

Revision as of 13:03, 1 April 2023

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

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)