Cod sursa(job #1829208)

Utilizator 1475369147896537415369Andrei Udriste 1475369147896537415369 Data 14 decembrie 2016 16:17:28
Problema Patrate2 Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.98 kb
#include<stdio.h>
#include<stdlib.h>

int DoiLaNPatrat[3200] = {1, 1};

//------------------------------------------------------
void ScalarMultiply(int A[], int x){

int i, t = 0;

for (i = 1; i <=A[0] || t; i++, t /= 10000){
   A[i] = (t += A[i] * x) % 10000;
}
A[0] = i - 1;
}
//------------------------------------------------------
int main(){

FILE *file1, *file2;
int N, i;

file1 = fopen("patrate2.in", "r");
file2 = fopen("patrate2.out", "w");

fscanf(file1, "%d", &N);

for(i=1; i<=N*N; i++){
    ScalarMultiply(DoiLaNPatrat, 2);
}
for(i=2; i<=N; i++){
    ScalarMultiply(DoiLaNPatrat, i);
}

for(i=DoiLaNPatrat[0]; i>0; i--){
    if(i!=DoiLaNPatrat[0]){
        if(!(DoiLaNPatrat[i]/10)){
            fprintf(file2, "000");
        }else if(!(DoiLaNPatrat[i]/100)){
            fprintf(file2, "00");
        }else if(!(DoiLaNPatrat[i]/1000)){
            fprintf(file2, "0");
        }
    }
    fprintf(file2, "%d", DoiLaNPatrat[i]);
}
return 0;
}