Diferențe pentru problema/sir4 între reviziile #17 si #1

Nu există diferențe între titluri.

Diferențe între conținut:

== include(page="template/taskheader" task_id="sir4") ==
_Atentie! Se va evalua sortarea conform exemplului (vezi explicatiile din exemplu)!_
 
Se cunoaște un număr natural *k*. Dorim să obținem un tablou unidimensional *a*, cu elemente naturale constituite astfel: a(1) = un număr de două cifre (cifra zecilor a lui a(1) este cifra sutelor produsului k*k, iar cifra unităților lui a(1) este cifra zecilor produsului k*k).
Pentru i>1, a(i) se obține astfel: a(i) = un număr de două cifre ( cifra zecilor a lui a(i) este cifra sutelor produsului a(i-1)*a(i-1), iar cifra unităților lui a(i) este cifra zecilor produsului a(i-1)*a(i-1) ).
Se citește de la tastatură numărul natural k. Dorim să obținem un tablou unidimensional a, cu elemente naturale constituite astfel: a [1] = un număr de două cifre (cifra zecilor a lui a[1] este cifra sutelor produsului k*k, iar cifra unităților lui a[1] este cifra zecilor produsului k*k).
Pentru i>1, a[i] se obține astfel: a[i] = un număr de două cifre (cifra zecilor a lui a[i] este cifra sutelor produsului a[i-1]*a[i-1], iar cifra unităților a lui a[i]este cifra zecilor produsului a[i-1]*a[i-1]).
Procesul de generare a termenilor tabloului se încheie în momentul când este generat un număr ce a mai fost generat înainte. Ultimul număr (cel ce se repetă) nu face parte din tablou.
 
h2. Observație
 
Este posibil ca numerele numite în text ca fiind de “două cifre” să aibă de fapt doar o cifră, în cazul în care cifra zecilor lor este 0; ele pot fi chiar și 0.
 
h2. Cerință
 
Scrieți un program care:
a) să afișeze elementele tabloului obținut;
b) să afișeze elementele tabloului obținut, dar sortate crescător după prima lor cifră (cea mai din stânga).
 
h2. Precizări
 
1) La cerința a doua: dacă două sau mai multe elemente din tabloul *a* au aceeași primă cifră, atunci aceste elemente se pot afișa în orice ordine ce respectă cerința. În exemplul de mai jos, afișarea pentru cerința a doua putea fi și sub forma:  0  2  25  5  62  84, adică am interschimbat 2 cu 25, pentru că ambele au prima cifră 2; în acest caz, alte posibilități de afișare nu mai sunt.
1) La cerința a doua: dacă două sau mai multe elemente din tabloul a au aceeași primă cifră, atunci aceste elemente se pot afișa în orice ordine ce respectă cerința. În exemplul de mai jos, afișarea pentru cerința a doua putea fi și sub forma:  0  2  25  5  62  84, adică am interschimbat 2 cu 25, pentru că ambele au prima cifră 2; în acest caz, alte posibilități de afișare nu mai sunt.
2) Pentru prima cerință rezolvată corect se atribuie 60% din punctaj, iar pentru a doua, încă 40% din punctaj.
h2. Date de intrare
De pe prima linie a fișierului de intrare sir4.in se citește numărul k.
Fișierul de intrare $sir4.in$
Numărul k.
h2. Date de ieșire
a) Pe prima linie a fisierului $sir4.out$ se vor afișa elementele tabloului a, în ordinea generării lor, separate de un spațiu.
b) Pe a doua linie a fiserului se vor afișa elementele tabloului a, în ordinea cerută la cerința a doua; elementele vor fi separate de câte un spațiu.
În fișierul de ieșire $sir4.out$
a) Pe prima linie a ecranului se vor afișa elementele tabloului a, în ordinea generării lor, separate de un spațiu.
b) Pe a doua linie a ecranului se vor afișa elementele tabloului a, în ordinea cerută la cerința a doua; elementele vor fi separate de câte un spațiu.
h2. Restricții
Numărul *k* este natural, 11<=*k*<=999
Numărul k este natural, 11<=k<=999
h2. Exemplu
table(example).
table(example).
|_. sir4.in |_. sir4.out |_. Explicație |
| 16
| 16
| 25 62 84 5 2 0
0 25 2 5 62 84
  0 25 2 5 62 84
|
| a) k*k=16*16=256; a[1]=25;
25*25=625;     a[2]=62;
62*62=3844;    a[3]=84
84*84=7056;    a[4]=5;
5 * 5=25;      a[5]=2;
2 * 2=4;       a[6]=0
0*0=0 și aici se oprește generarea tabloului cu 6 elemente, care se afișează.
b)
a(1)=25; prima sa cifră este 2;
a(2)=62; prima sa cifră este 6;
a(3)=84; prima sa cifră este 8;
a(4)=5; prima sa cifră este 5;
a(5)=2; prima sa cifră este 2;
a(6)=0; prima sa cifră este 0.
Vom sorta aceste valori dupa prima cifra; daca prima cifra va fi egala, vor fi trecute
mai intai numere de 2 cifre, in ordine crescatoare iar mai apoi numarul de o cifra.
  25*25=625;     a[2]=62;
  62*62=3844;    a[3]=84
  84*84=7056;    a[4]=5;
    5*5=25;      a[5]=2;
    2*2=4;       a[6]=0
    0*0=0 și aici se oprește generarea tabloului cu 6 elemente, care se afișează.
b) a[1]=25; prima sa cifră este 2;
    a[2]=62; prima sa cifră este 6;
    a[3]=84; prima sa cifră este 8;
    a[4]=5; prima sa cifră este 5;
    a[5]=2; prima sa cifră este 2;
    a[6]=0; prima sa cifră este 0.
În urma sortării acestor prime cifre: 2 (asociată cu a[1]), 6 (asociată cu a[2]),
8 (asociată cu a[3]), 5 (asociată cu a[4]), 2 (asociată cu a[5]) și 0 (asociată cu a[6]),
se obține ordinea nouă a acestor numere: 0, 2, 2, 5, 6, 8, asociate respectiv cu
elementele din tabloul a: 0, 25, 2, 5, 62, 84;  Observam ca avem 2 numere a caror prima cifra este 2.
Vom printa mai intai valoare de 2 cifre 25, si mai apoi valoarea 2.
elementele din tabloul a: 0, 25, 2, 5, 62, 84; elementele din a se vor afa în
aceasta ordine, sau  în ordinea: 0, 2, 25, 5, 62, 84.
|
|863
|76 77 92 46 11 12 14 19 36 29 84 5 2 0
0 11 12 14 19 29 2 36 46 5 76 77 84 92
| &nbsp;
|
 
 
== include(page="template/taskfooter" task_id="sir4") ==

Nu există diferențe între securitate.