Cod sursa(job #469337)

Utilizator darrenRares Buhai darren Data 7 iulie 2010 16:18:59
Problema Nunta Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<cstring>
#include<fstream>
#include<algorithm>
using namespace std;

void add(int s1[], int s2[], int* s3)
{
    memset(s3, 0, sizeof(int) * 1001);
    for (int i = 1; i <= max(s1[0], s2[0]); ++i)
    {
        s3[i] += s1[i] + s2[i];
        s3[0] = i;
        if (s3[i] >= 10)
        {
            s3[i + 1] += s3[i] / 10;
            s3[i] %= 10;
            s3[0] = i + 1;
        }
    }
    while (s3[s3[0]] >= 10)
        s3[++s3[0]] += s3[s3[0] - 1] / 10,
        s3[s3[0] - 1] %= 10;
}

int n, a[1001], b[1001], c[1001];
int main()
{
    ifstream fin("nunta.in");
    ofstream fout("nunta.out");
    fin >> n;
    a[0] = 1, a[1] = 1;
    b[0] = 1, b[1] = 1;

    for (int i = 1; i < n; ++i)
    {
        add(a, b, c);
        memcpy(a, b, sizeof(a));
        memcpy(b, c, sizeof(c));
    }
    for (int i = b[0]; i >= 1; --i)
        fout << b[i];
}