Cod sursa(job #976971)
Utilizator | Data | 24 iulie 2013 14:50:04 | |
---|---|---|---|
Problema | Patrate2 | Scor | 100 |
Compilator | c | Status | done |
Runda | Arhiva de probleme | Marime | 0.58 kb |
#include<stdio.h>
int v[1000000];
void mul(int A[], int B)
{
int i, t = 0;
for (i = 1; i <= A[0] || t; i++, t /= 10)
A[i] = (t += A[i] * B) % 10;
A[0] = i - 1;
}
int main()
{
FILE *fin,*fout;
fin=fopen("patrate2.in","r");
fout=fopen("patrate2.out","w");
int n;
fscanf(fin,"%d",&n);
v[0]=v[1]=1;
if ((n*n)%3==1)
mul(v,2);
int i;
for (i=1;i<=n*n/3;i++)
mul(v,8);
for (i=1;i<=n;i++)
mul(v,i);
for (i=v[0];i>=1;i--)
fprintf(fout,"%d",v[i]);
return 0;
}