Cod sursa(job #3367225)

Utilizator Coman_DianaComan Diana Coman_Diana Data 6 octombrie 2026 18:15:49
Problema Patrate2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <iostream>
#include <stdio.h>

using namespace std;

#define CIFMAX 3500

void inmultire( char a[], int &lung_a, int b ) {
  int t, ind;

  ind = t = 0;
  while ( ind < lung_a || t > 0 ) {
    t += b * a[ind];
    a[ind] = t % 10;
    t /= 10;
    ind++;
  }

  if ( ind > lung_a )
    lung_a = ind;
}

FILE *fin, *fout;
void afisare( char r[], int lung_r ) {
  int ind;

  for ( ind = lung_r - 1; ind >= 0; ind-- )
    putc( '0' + r[ind], fout );
  putc( '\n', fout );
}

char rez[CIFMAX];

int main()
{
    int num_n, ind, lung_rez, n_patrat;

    fin = fopen( "patrate2.in", "r" );
    fscanf( fin, "%d", &num_n );
    fclose( fin );

    rez[0] = 1;
    lung_rez = 1;

    for ( ind = 1; ind <= num_n; ind++ )
      inmultire( rez, lung_rez, ind );

    n_patrat = num_n * num_n;
    for ( ind = 0; ind < n_patrat; ind++ )
      inmultire( rez, lung_rez, 2 );

    fout = fopen( "patrate2.out", "w" );
    afisare( rez, lung_rez );
    fclose( fout );

    return 0;
}