Rezolvare completă PbInfo #2820 Sir11

Cerința

Se consideră șirul 1, -1, 2 … definit astfel: \(f_1 =1\), \(f_2 =-1\), iar \(f_n =1-2 \cdot f _{n-1} -f_{n-2}\), dacă n≥3 (unde n este un număr natural).

Se citește un număr natural, n (n∈[1,106]), și se cere să se afișeze, separați prin câte un spațiu, primii n termeni ai șirului, în ordine inversă apariției lor în acesta.

Date de intrare

Fișierul de intrare sir11.in conține pe prima linie numărul n.

Date de ieșire

Fișierul de ieșire sir11.out va conține pe prima linie, separați prin câte un spațiu, primii n termeni ai șirului, în ordine inversă apariției lor în acesta.

Restricții și precizări

  • Pentru determinarea și afișarea numerelor cerute se utilizează un algoritm eficient din punctul de vedere al spațiului de memorie și al timpului de executare;
    • se recomandă evitarea memorării numerelor într-un tablou sau în altă structură de date similară
  • în enunțul original, n∈[1,109]; datorită dimensiunilor fișierelor obținute, limita maximă a lui n a fost redusă;

Exemplu

sir11.in

3

sir11.out

2 -1 1

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 Sir11:

#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("sir11.in");
ofstream fout("sir11.out");

int main()
{
    int n;
    
    fin >> n;
    
    for(int i = n; i >= 1 ; i --)
        if(i % 2 == 0)
            fout << - i/2 << " ";
        else
            fout << (i+1) / 2 << " ";
    
    fin.close();
    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 Adresa de email.

Rezolvarea problemei #2820 Sir11

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2820 Sir11 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!