Cod sursa(job #330230)

Utilizator MarcvsHdrMihai Leonte MarcvsHdr Data 9 iulie 2009 10:39:20
Problema Nunta Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
# include <stdio.h>

typedef struct NUMAR
        {
        long int v[4000];
        long int len;
        };
        
NUMAR v[1000];

long int max(long int a, long int b)
{
     if (a>b) return a;
     return b;
}

void aduna(NUMAR &c, NUMAR &a, NUMAR &b)
     {
     c.len=max(a.len,b.len);
     long int i;
     for (i=1;i<=c.len;i++)
         {
         c.v[i]+=a.v[i]+b.v[i];
         c.v[i+1]+=c.v[i]/10;
         c.v[i]%=10;
         }
     while (c.v[c.len+1])
           {
           c.len++;
           c.v[c.len+1]+=c.v[c.len]/10;
           c.v[c.len]%=10;
           }
     }
         

int main()
{
    long int n;
    FILE *f=fopen("nunta.in","r");
    fscanf(f,"%ld",&n);
    fclose(f);
    v[1].len=1;v[1].v[1]=1;
    v[2].len=1;v[2].v[1]=2;
    long int i;
    for (i=3;i<=n;i++)
        aduna(v[i],v[i-1],v[i-2]);
    FILE *g=fopen("nunta.out","w");
    for (i=v[n].len;i>=1;i--)
        fprintf(g,"%ld",v[n].v[i]);
    fprintf(g,"\n");
    fclose(g);
    return 0;
}