Cod sursa(job #3240448)

Utilizator bogdan1479Luca Bogdan Alexandru bogdan1479 Data 15 august 2024 16:19:37
Problema Nunta Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>
#include <vector>

using namespace std;

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

int n;
vector<int> A, B;

void afisare()
{
    for(auto it = B.crbegin(); it != B.crend(); it++)
        fout << *it;
}

void adunare()
{
    int T = 0;
    for(auto it = A.begin(), it2 = B.begin(); it2 != B.end(); ++it, ++it2)
    {
        if(it != A.end())
        {
            T += *it + *it2;
            *it = T % 10;
        }
        else
        {
            T += *it2;
            A.push_back(T % 10);
        }
        T /= 10;
    }
    if(T)
        A.push_back(1);
}

void genFibo()
{
    A.push_back(1);
    B.push_back(2);
    if(n < 3)
    {
        fout << n;
        return;
    }
    for(int i = 3; i <= n; i++)
    {
        adunare();
        A.swap(B);
    }
    afisare();
}

int main()
{
    fin >> n;
    genFibo();
    return 0;
}