Șirul de mai jos este definit astfel: f1=1, f2=2, fn=3∙fn-1-2∙fn-2 (unde n este un număr natural n≥3). 1, 2, 4, 8, 16, 32.... Se citește de la tastatură un număr natural x (x≤109), valoare a unui termen al șirului dat, şi se cere să se scrie în fişierul text bac.txt, în ordine descrescătoare, separați prin câte un spațiu, toţi termenii şirului care sunt mai mici sau egali cu x. Proiectați un algoritm eficient din punctul de vedere al memoriei utilizate şi al timpului de executare. Exemplu: dacă se citește numărul 16 fişierul bac.txt conţine numerele 16 8 4 2 1
Răspunsuri la întrebare
Răspuns de
4
Răspuns:
#include <iostream>
#include <fstream>
using namespace std;
ofstream g("bac.txt");
int main()
{
int n,x;
cin>>n;
x=2;
if(n<2)
g<<n;
else
{while(x<=n/2)
x=x*2;
while(x)
{
g<<x<<" ";
x/=2;
}}
return 0;
}
Explicație:
Alte întrebări interesante
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Studii sociale,
9 ani în urmă
Studii sociale,
9 ani în urmă
Matematică,
9 ani în urmă
Engleza,
9 ani în urmă