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

Examenul de bacalaureat naţional 2018

Proba E. d)

Informatică

Limbajul C/C++

Varianta 1

4. Primii termeni ai șirului definit alăturat

(unde n este un număr natural nenul)

sunt:

0, 3, 8, 15, 24, 35, 48, 63, 80 ....

fn=

0 dacă n=1

3 dacă n=2

2∙fn-1-fn-2+2 altfel

Se citesc de la tastatură 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
cere să se scrie în fişierul text bac.txt, în ordine strict descrescătoare, separați prin câte

un spațiu, toţi termenii şirului mai mici sau egali cu y.

Proiectați un algoritm eficient din punctul de vedere al timpului de executare și al memoriei

utilizate.

Exemplu: dacă se citesc numerele

48 63

fişierul bac.txt conţine numerele

63 48 35 24 15 8 3 0

a) Descrieţi în limbaj natural algoritmul proiectat, justificând eficienţa acestuia. (2p.)

b) Scrieţi programul C/C++ corespunzător algoritmului proiectat. (8p.)




Help!!!!!!!!!!!!!! a si in limbaj de clasa a X ! verificati , nu se afiseaza si puterea si functia

Răspunsuri la întrebare

Răspuns de boiustef
4

Răspuns:

#include <iostream>

#include <fstream>

using namespace std;

ofstream g("bac.txt");

int x,y,dif,t;

int main()

{

   cin >> x >> y;

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

   if (x!=0)

   {

       t=x; dif=y-x;

       while (t!=3)

       {

           dif-=2;

           t-=dif;

           g << " " << t;

       }

       g << " " << 0;

   }

}

Explicație:

63 48 35 24 15 8 3 0

Fiind dati x si y,  48 şi 63, diferenţa dintre ei este 15. Pentru a afla precedentul lui 48, scădem 13, apoi 11, apoi 9, ş.a.m.d


boiustef: multe din aşa probleme e să se observe regula de formare a termenilor, nu folosirea formulei de recurenţă
nixulaeionut2016: da eroare pe ultimul rand oare de ce ?
nixulaeionut2016: am ajuns pana la urma la rezultat ms
boiustef: de la copy/paste a fost?
Alte întrebări interesante