Cerința
Considerăm următorul șir, în care n
este un număr natural nenul: \( f_n = \begin{cases}
0& \text{dacă } n = 1,\\
3& \text{dacă } n = 2,\\
2 \cdot f_{n-1} – f_{n-2} + 2& \text{dacă } n > 2.
\end{cases} \)
Primii termeni ai acestui șir sunt: 0, 3, 8, 15, 24, 35, 48, 63, 80 ....
Se citesc două numere naturale din intervalul [0,10
9
]
, x
și y
, reprezentând valorile a doi termeni aflați pe poziții consecutive în șirul dat (x<y
), și se cere să se afișeze, în ordine strict descrescătoare, separați prin câte un spațiu, toţi termenii șirului mai mici sau egali cu y
.
Date de intrare
Fișierul de intrare pozitiiconsecutive.in
conține pe prima linie numerele x y
.
Date de ieșire
Fișierul de ieșire pozitiiconsecutive.out
va conține pe prima linie în ordine strict descrescătoare, separați prin câte un spațiu, toţi termenii șirului mai mici sau egali cu y
.
Restricții și precizări
0 ≤ x < y ≤ 10
9
- proiectați un algoritm eficient din punctul de vedere al timpului de executare și al memoriei utilizate;
- se recomandă o soluție care să nu folosească tablouri sau alte structuri de date similare.
Exemplu
pozitiiconsecutive.in
48 63
pozitiiconsecutive.out
63 48 35 24 15 8 3 0
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema PozitiiConsecutive:
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("pozitiiconsecutive.in");
ofstream fout("pozitiiconsecutive.out");
int main()
{
int a , b , c;
fin >> b >> c;
fin.close();
fout << c << " " << b << " ";
while(b)
{
a = 2 * b - c + 2;
fout << a << " ";
c = b;
b = a;
}
fout.close();
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #2793 PozitiiConsecutive
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2793 PozitiiConsecutive de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!