Pagini recente » Cod sursa (job #2548575) | Cod sursa (job #1210982) | Cod sursa (job #274115) | Cod sursa (job #1867143) | Cod sursa (job #2011522)
#include<cstdio>
#define MOD 10000
using namespace std;
FILE * fin = fopen( "patrate2.in", "r" );
FILE * fout = fopen( "patrate2.out", "w" );
int a[10005], b[10005], c[10005], t, n;
int main(){
fscanf( fin, "%d", &n );
a[0] = a[1] = 1;
for( int i = 2; i <= n; i++ ){
t = 0;
for( int j = 1; j <= a[0]; j++ ){
a[j] = a[j] * i + t;
t = a[j] / MOD;
a[j] %= MOD;
}
while( t != 0 ){
a[ ++a[0] ] = t % MOD;
t /= MOD;
}
}
b[0] = b[1] = 1;
for( int i = 1; i <= n * n; i++ ){
t = 0;
for( int j = 1; j <= b[0]; j++ ){
b[j] = b[j] * 2 + t;
t = b[j] / MOD;
b[j] %= MOD;
}
while( t != 0 ){
b[ ++b[0] ] = t % MOD;
t /= MOD;
}
}
t = 0;
c[0] = a[0] + b[0] - 1;
for( int i = 1; i <= a[0]; i++ ){
for( int j = 1; j <= b[0]; j++ ){
c[i + j - 1] = a[i] * b[j];
}
}
for( int i = 1; i <= c[0]; i++ ){
c[i] += t;
t = c[i] / MOD;
c[i] %= MOD;
}
while( t != 0 ){
c[ ++c[0] ] = t % MOD;
t /= MOD;
}
for( int i = c[0]; i >= 1; i-- ){
if( i == c[0] ){
fprintf( fout, "%d", c[i] );
}else{
fprintf( fout, "%04d", c[i] );
}
}
return 0;
}