Cod sursa(job #1605303)

Utilizator gorni97aaa aaa gorni97 Data 18 februarie 2016 21:42:46
Problema Patrate2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <iostream>
#include <fstream>
using namespace std;
int a[10000],b[10000],c[10000];

int pow(int x,int y)
{int p=1;

while(y>0)
{if(y%2==0)
{x=x*x;
y=y/2;
}
else
{p=p*x;
    y--;
}}
    return p;
}

void produs(int a[10000],int b[10000],int c[10000])
{int r,i,j;

    r=0;
    c[0]=a[0]+b[0]-1;
    for(i=1;i<=a[0]+b[0];i++)
        c[i]=0;

    for(i=1;i<=a[0];i++)
        for(j=1;j<=b[0];j++)
        c[i+j-1]=c[i+j-1]+a[i]*b[j];

    for(i=1;i<=c[0];i++)
        {c[i]=c[i]+r;
        r=c[i]/10;
        c[i]=c[i]%10;}

        if(r!=0)
            {c[0]++;
        c[c[0]]=r;}

a[0]=c[0];
for(i=1;i<=a[0];i++)
    a[i]=c[i];

}


int main()

{
    int n,m,i,j;
    fstream f("patrate2.in",ios::in);
    fstream g("patrate2.out",ios::out);
    f>>n;
a[0]=1;
a[1]=1;
        for(i=2;i<=n;i++)
        {b[0]=0;
        m=i;j=0;

        while(m!=0)
        {j++;
        b[j]=m%10;
        m=m/10;
        b[0]++;
        }
produs(a,b,c);}




b[0]=1;
b[1]=2;

for(i=1;i<=n*n;i++)
produs(c,b,a);

for(i=c[0];i>=1;i--)
    g<<c[i];

    if(n==1)
        g<<2;

}