Informatică, întrebare adresată de Baka, 9 ani în urmă

≥ω≤ Stiti sa rezolvati macar putin?
1) Se conside numarul peudocod :

Citeste n://
numar natural
Suma <---0
Cat timp n≠0 executa
           suma<---suma + n
           n<---[n/10]
scrie suma:
a) Ce returneaza algoritmul pentru valoarea citita n=671 ?
b)Gasiti o valoarea n pentru carea algoritmul sa returneze 226

2) Se considera numarul pseudocod :
Citeste a,b; numere naturale//
Daca a>b
         atunci :
                    aux<--- a
                     a<---b
                     b<---aux
Suma <--- 0


andreycosminxd: care este cerinta la punctul 2?
Baka: Scrie suma
a)Ce returneaza algoritmul pentru valorile cititre a=14 , b=18 ?
b)Gasiti 2 valori a si b pentru care algorimul sa returneze 43 ?
c)Rescrieti algoritmul inlocuind structura de ciclare pentru....executa ci o alta structura de ciclare

Răspunsuri la întrebare

Răspuns de andreycosminxd
1
Primul pseudocod pare sa adune "bucati" din numarul citit atat cate cifre are. Spre exemplu:
-Introduci 671
1) prima iteratie
    suma = 0 + 671
    n = 67 // atat da 671 impartit la 10
2) a doua iteratie
    suma = 671 + 67
    n = 6
3) iteratia 3
    suma = 671 + 67 +6
    n = 0 // 6 impartit la 10 da 0.6, dar cum n este numar intreg, se va retine doar 0
4) iteratia 4 
    aici ne oprim deoarece n este 0

Deci, dupa executarea algoritmului, suma = 671 + 67 + 6 = 744

Acum sa vedem punctul b. Uite rationamentul:
Tu trebuie sa gasesti un numar(ii voi nota cifrele x, y, z) de forma xyz. Dupa cum ai vazut mai sus, la fiecare iteratie a buclei se scapa de cifra din spate. Asa va arata numarul dupa ce bucla va rula:
xyz+
  xy+
    x

Deci prima cifra va fi obligatoriu 2, vedem ca suma celei de a doua si prima = 2, deci y = 0, iar suma celor 3 cifre  = 6, cum x = 2 si y = 0, in mod evident z = 4.
Numarul este 204.

La punctul 2 nu vad vreo cerinta.

Baka: Multumesc mult >:D<
Alte întrebări interesante