Sample Output
36
#include<iostream> #include<algorithm> #include<cmath> using namespace std; char res[10001]; int i, carry, len = 1; void mutiply ( int n ) { carry = 0; char *h = res; for ( i = 0; i < len; i++ ) { *h = *h * n + carry; carry = *h / 10; *h %= 10; h++; } if ( carry != 0 ) { *h = carry; len++; } } void f ( int n ) { int n3, n2, i; if ( n %2 == 0 ) { n3 = n / 6 * 2; n2 = n % 6 / 2; } else { n3 = ( n - 3 ) / 6 * 2 + 1; n2 = ( n - 3 ) % 6 / 2; } for ( i = 1; i <= n3 / 2; i++ ) { mutiply ( 9 ); } if ( n3 % 2 != 0 ) { if ( n2 > 0 ) { mutiply ( 6 ); n2--; } else { mutiply ( 3 ); } } if ( n2 > 0 ) { mutiply ( ( int ) pow ( 2.0,n2 ) ); } } int main() { int n; res[0] = 1; while ( scanf ( "%d",&n ) !=EOF ) { if ( n <= 3 ) { printf ( "%d\n", n ); continue; } res[0] = 1; len = 1; f ( n ); for ( i = len - 1; i >= 0; i-- ) { printf ( "%d", res[i] ); } printf ( "\n" ); } return 0; }