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

#2793 PozitiiConsecutive

Se citesc două numere naturale din intervalul [0,109], x și y, reprezentând valorile a doi termeni aflați pe poziții consecutive în șirul dat (x
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 ≤ 109
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.

pozitiiconsecutive.in

48 63
pozitiiconsecutive.out

63 48 35 24 15 8 3 0

Răspunsuri la întrebare

Răspuns de boiustef
4

#include <iostream>

#include <fstream>

using namespace std;

ifstream f("pozitiiconsecutive.in");

ofstream g("pozitiiconsecutive.out");

int x,y,urm;

int main()

{

   f >> x >> y;

   g << y << " " << x;

   urm=2*x+2-y;

   while (urm>=0)

   {

       g << " " << urm;

       y=x; x=urm;

       urm=2*x+2-y;

   }

}

Alte întrebări interesante