Cod sursa(job #2108863)

Utilizator lixiLixandru Andrei lixi Data 18 ianuarie 2018 21:25:28
Problema Nunta Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include<fstream>
using namespace std;
ifstream f("nunta.in");
ofstream g("nunta.out");
char A[210],B[210];
void Add(char A[], char B[])
/* A <- A+B */
{ int i,T=0;

  if (B[0]>A[0])
    { for (i=A[0]+1;i<=B[0];) A[i++]=0;
      A[0]=B[0];
    }
    else for (i=B[0]+1;i<=A[0];) B[i++]=0;
  for (i=1;i<=A[0];i++)
    { A[i]+=B[i]+T;
      T=A[i]/10;
      A[i]%=10;
    }
  if (T) A[++A[0]]=T;
}
int main()
{
    int N;
    f >> N;
    A[0]=B[0]=1;
    A[1]=1;
    B[1]=2;
     char *f1=A,*f2=B,*aux;
    for(int i=2;i<=N;i++)
    {
        Add(f1,f2);
        aux=f1;
        f1=f2;
        f2=aux;
        }
        if(N%2==0)
        for(int i=B[0];i>=1;i--)
        g<<int(B[i]);
        else
               for(int i=A[0];i>=1;i--)
        g<<int(A[i]);

        return 0;
    }