int main() { int x = 195; bignum a, b, c; initialize_bignum(&a); initialize_bignum(&b); initialize_bignum(&c); int_to_bignum(x, &a); printf("a = "); print_bignum(&a); printf("\n"); reverse_bignum(&a, &b); printf("b = "); print_bignum(&b); printf("\n"); int_to_bignum(1221, &c); printf("c = "); print_bignum(&c); printf("\n"); is_palindrome(&c); return 0; }
/** Test Function */ int main( ) { bignum n1, n2, n3, zero; // Instantiate string buffers for big numbers a and b char* a = calloc( MAXDIGITS, sizeof( char ) ); char* b = calloc( MAXDIGITS, sizeof( char ) ); // Get big numbers a and b as strings printf( "a = " ); fgets( a, MAXDIGITS, stdin ); printf( "b = " ); fgets( b, MAXDIGITS, stdin ); // Remove the newline character (if present) from string buffers char* nl; if( ( nl = strchr( a, '\n' ) ) != NULL ) *nl = '\0'; if( ( nl = strchr( b, '\n' ) ) != NULL ) *nl = '\0'; // Create a and b big number instances via the string buffers string_to_bignum( a, &n1 ); string_to_bignum( b, &n2 ); // Test addition add_bignum( &n1, &n2, &n3 ); printf( "a + b = " ); print_bignum( &n3 ); // Test comparison int comparison = compare_bignum( &n1, &n2 ); printf( "a %s b\n", comparison == 0 ? "==" : ( comparison < 0 ? ">" : "<" ) ); // Test subtraction subtract_bignum( &n1, &n2, &n3 ); printf( "a - b = " ); print_bignum( &n3 ); // Test multiplication multiply_bignum( &n1, &n2, &n3 ); printf( "a * b = " ); print_bignum( &n3 ); // Test division int_to_bignum( 0, &zero ); if( compare_bignum( &zero, &n2 ) == 0 ) { printf( "a / b = NaN\n" ); } else { divide_bignum( &n1, &n2, &n3 ); printf( "a / b = " ); print_bignum( &n3 ); } return 0; }
int main(int argc, char *argv[]) { int n; int sum = 0; if (argc == 1) n = 5; else n = atoi(argv[1]); bignum cur_ans, cur, ans; int_to_bignum(1, &cur_ans); for(int i = 1; i <=n; i++) { int_to_bignum(i, &cur); multiply_bignum(&cur, &cur_ans, &ans); cur_ans = ans; } print_bignum(&ans); for(int i = 0; i <= ans.lastdigit; i++) { sum += ans.digits[i]; } printf("The ans is %d\n", sum); return 0; }
int main(void) { int a,b; bignum n1,n2,n3,zero; while (scanf("%d %d",&a,&b) != EOF) { printf("a = %d b = %d\n",a,b); int_to_bignum(a,&n1); int_to_bignum(b,&n2); add_bignum(&n1,&n2,&n3); printf("addition -- "); print_bignum(&n3); printf("compare_bignum a ? b = %d\n",compare_bignum(&n1, &n2)); subtract_bignum(&n1,&n2,&n3); printf("subtraction -- "); print_bignum(&n3); multiply_bignum(&n1,&n2,&n3); printf("multiplication -- "); print_bignum(&n3); int_to_bignum(0,&zero); if(compare_bignum(&zero, &n2) == 0) printf("division -- NaN \n"); else { divide_bignum(&n1,&n2,&n3); printf("division -- "); print_bignum(&n3); } printf("--------------------------\n"); } return 0; }
initialize_bignum(bignum *n) { int_to_bignum(0,n); }