Esempio n. 1
0
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;
}
Esempio n. 3
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;
}
Esempio n. 4
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;
}
Esempio n. 5
0
initialize_bignum(bignum *n)
{
	int_to_bignum(0,n);
}