Lista de probleme 12

Filtrare

Se consideră şirul definit mai jos:

$$ f_n = \begin{cases}
1& \text{dacă } n = 1\\
1 + f_{n-1} & \text{dacă } n \text{ par} \\
1 + 2 \cdot f_{n-2} & \text{altfel}
\end{cases} $$

în care nu există doi termeni cu aceeași paritate aflați pe poziții consecutive: 1, 2, 3, 4, 7, 8, 15, 16 .....

Pentru un număr natural x, termen al şirului dat, se cere să se afișeze pe ecran, în ordine strict descrescătoare, separați prin câte un spațiu, toţi termenii şirului care sunt mai mici sau egali cu x.

#3266 sir147

Fișierul sir147.in memorează cel mult 10000 de numere naturale cu cel mult nouă cifre. Numerele sunt ordonate strict crescător și separate prin câte un spațiu. Se consideră șirul 1, 4, 7, …. definit astfel: \(f_1 = 1\), \(f_2 = 4 \) si \(f_n=f_{n-1}*2-f_{n-2} \), pentru n > 2. Se cere să se scrie în fișierul sir147.out numerele din fișier care sunt termeni ai șirului. Numerele sunt afișate în ordine strict crescătoare, separate prin câte un spațiu.

Se dă o matrice cu m linii şi n coloane şi elemente numere naturale cu cel mult 4 cifre fiecare. Să se determine coloanele matricei care au toate elementele egale cu aceeași valoare.

Fișierul de intrare conține cel puțin 3 și cel mult 1.000.000 de numere naturale. Se cere să se afișeze în fișierul de ieșire, separate printr-un spaţiu, două numere distincte, anume cel mai mic număr par cu două cifre și cel mai mare număr par cu două cifre care NU fac parte din şir.

Fiind date două numere a şi b, îl numim pe a sufix al lui b dacă a este egal cu b sau dacă b se poate obţine din a prin alipirea la stânga a unor noi cifre.

Se dă un număr natural x și un șir de numere naturale. Să se determine ultimul număr din șir care îl care ca sufix pe x.

#802 SumImpK C++

Scrieţi definiția completă a subprogramului C++ sub care are 3 parametri: n – prin care primește un număr natural, v, prin care primeşte un tablou unidimensional cu n elemente, numere naturale cu cel mult 4 cifre și k, prin care primeşte un număr natural.

Subprogramul returnează suma primelor k elemente cu valoare impară ale tabloului. Dacă nu există k elemente impare în tablou, subprogramul returnează valoarea -1.

#805 Valuri C++

Scrieţi definiția completă a subprogramului C++ valuri care are 2 parametri: n – prin care primește un număr natural, v, prin care furnizează un tablou unidimensional cu 2*n elemente, valori naturale distincte din intervalul [1,2*n].

Subprogramul construieşte tabloul v astfel încât, în acesta, şirul elementelor impare să fie strict crescător, iar şirul elementelor pare să fie strict descrescător. Primul element al tabloului este impar, iar două elemente cu aceeaşi paritate nu pot ocupa poziţii consecutive în tablou.

#810 nrA

Se dă un şir de caractere ce conţine cuvinte formate din litere mici ale alfabetului englez, separate prin unul sau mai multe spații. Înaintea primului cuvânt nu există spații, și nici după ultimul. Să se determine numărul de cuvinte din șir în care apare litera a.

Să se scrie un program care citeşte un şir de caractere format din cuvinte separate prin unul sau mai multe spații şi elimină din șir toate spațiile inutile.

#808 Mutare C++

Scrieţi definiția completă a subprogramului C++ sub care are 3 parametri: n – prin care primește un număr natural, v, prin care primeşte un tablou unidimensional cu n elemente, numere naturale cu cel mult 4 cifre și x, prin care primeşte un număr natural. Cel puțin un element al tabloului v are valoarea x.

Subprogramul modifică ordinea valorilor din tablou, astfel încât toate valorile egale cu x să ocupe primele poziţii din v, iar celelalte valori să se regăsească în continuarea acestora, în ordinea inițială. Tabloul modificat este furnizat tot prin parametrul v.