Pagini recente » Cod sursa (job #2481202) | Cod sursa (job #2998615) | Cod sursa (job #424017) | Cod sursa (job #807399) | Cod sursa (job #2786586)
#include <stdio.h>
#include <stdlib.h>
#define MAXNRCFPUT 3334
#define MAXNRCFFACT 200
int v[MAXNRCFFACT + MAXNRCFPUT];
int inmultire(int nrcf, int a){
int aux, i, cv;
aux = 0;
i = 0;
while((i < nrcf) || (0 < aux)){
cv = v[i];
v[i] = (aux + v[i] * a) % 10;
aux = (aux + cv * a) / 10;
i++;
}
return i;
}
int fact(int n){
int i, nrcf;
v[0] = 1;
nrcf = 1;
for(i = 2; i <= n; i++){
nrcf = inmultire(nrcf, i);
}
return nrcf;
}
int put2(int n, int nrcf){
int i;
for(i = 0; i < n; i++){
nrcf = inmultire(nrcf, 2);
}
return nrcf;
}
int main()
{
FILE *fin, *fout;
int n, nrcf, i;
fin = fopen("patrate2.in", "r");
fscanf(fin, "%d", &n);
fclose(fin);
nrcf = fact(n);
nrcf = put2(n * n, nrcf);
fout = fopen("patrate2.out", "w");
for(i = nrcf - 1; 0 <= i; i--){
fprintf(fout, "%d", v[i]);
}
fclose(fout);
return 0;
}