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

O problema la informatica
+ explicatia, multumesc !
Doar punctul a) !

Anexe:

Răspunsuri la întrebare

Răspuns de triforcelord6
1

Răspuns:

2002

Explicație:

EXPLICATIE PE CAZ GENERAL:

Citim un numar n, iar apoi n numere naturale.

x fiind unul din aceste numere, vom verifica daca

x%10 > [x/10]%10

insemnand ca vom verifica daca ultima cifra este mai mare decat penultima.

x = x /10 va taia ultima cifra si vom face aceeasi compare cu noul x

pana cand aceasta va deveni 0. (deoarece 0%10 > 0/10%10, adica

0 > 0 este fals)

Daca x ar fi strict crescator, atunci la finalul while-ului

x-ul va fi 0, iar la m se va adauga 0. (adica nu se modifica)

127%10 > 12%10       (7>2)
12%10   > 1%10         (2>1)
1%10     > (1/10)%10   (1>0)
0%10    > 0/10%10    (0>0) FALS deci ne oprim aici
m = m + 0

Daca x NU ar fi strict crescator:

2019%10 > 201%10 (9>1)
201%10 > 20%10 (1>0)
20%10 > 2%10 (0>2) FALS deci ne oprim
m = m + 20

Observam ca while-ul nu a mers mai departe asa ca nu mai taiem cifre si ramanem cu 20, pe care il adaugam la m.

EXPLICATIE PE DATELE PROBLEMEI:

s.c = cifrele in ordine strict crescatoare, deci egale cu 0 dupa while

5 s.c

127 s.c

2019 taiem 9 si 1 iar 0>2 este fals deci ramanem cu 2

1005 taiem 5, iar 0>0 fals deci ramanem cu  100

7 s.c

1900, 0>0 fals deci ramenem cu 1900

0 + 0 + 2 + 100 + 0 + 1900 = 2002

Alte întrebări interesante