Pagini recente » Cod sursa (job #1728264) | Cod sursa (job #1132693) | Cod sursa (job #2914258) | Cod sursa (job #1768668) | Cod sursa (job #2786404)
#include <stdio.h>
#define NC 10000
struct hugeNumber {
char cif[NC];
int ncf;
};
hugeNumber ans;
void init( hugeNumber& v1, int a ) {
v1.ncf = 0;
while ( a > 0 ) {
v1.cif[v1.ncf ++] = a % 10;
a /= 10;
}
}
void prodScalar( hugeNumber& v1, const int scalar ) {
int t, i;
t = i = 0;
while ( i < v1.ncf || t > 0 ) {
t = t + v1.cif[i] * scalar;
v1.cif[i] = t % 10;
t /= 10;
i ++;
}
if ( i > v1.ncf )
v1.ncf = i;
}
void afis( const hugeNumber& v1, FILE *fout ) {
for ( int i = v1.ncf - 1; i >= 0; i -- )
fputc( v1.cif[i] + '0', fout );
fputc( '\n', fout );
}
int main() {
FILE *fin, *fout;
int n;
fin = fopen( "patrate2.in", "r" );
fscanf( fin, "%d", &n );
fclose( fin );
init( ans, 1 );
for ( int i = 2; i <= n; i ++ )
prodScalar( ans, i );
int p = 1 << 27;
for ( int i = 0; i < n * n / p; i ++ )
prodScalar( ans, p );
for ( int i = 0; i < n * n % p; i ++ )
prodScalar( ans, 2 );
fout = fopen( "patrate2.out", "w" );
afis( ans, fout );
fclose( fout );
return 0;
}