Beispiel #1
0
void result (char * string, int n)
{
	char exp;
	char *p;
	int num, num3;
	int num1, num2;
	int i = 0, j = 0;
	int flag = 0;
	int tmp[MAXSIZE];
	char ope[MAXSIZE];
	Operate *operate;
	Number  *number;


	operate = init_operate();
	number  = init_number();
	p = string;

	while (*p != '\0')
	{
		num = 0;
		flag = 0;


		while ((*p) >= '0' && (*p) <= '9')
		{
			flag = 1;
			num = (*p - '0') + num * 10;
			p++;
		}

		if (flag == 1)
		{
			tmp[i++] = num;
			push_num(number, num);
		//	printf("压栈%d大小%d\n", num, number->len);
		}

		if (if_operte(*p) == 1)
		{
			pop_num(number, &num1);
			pop_num(number, &num2);


		//	printf("弹出%d %d\n", num1, num2);
		//	printf("还剩%d\n", number->len);
			push_num(number, calculate(num2, num1, *p));
			top_number(number, &num3);
		///	printf("%d %c %d = %d\n", num2, *p, num1, num3);
		//	printf("压栈%d\n", calculate(num2, num1, *p));
		
		}

		p++;
	}

	top_number(number, &num);
	printf("结果是%d\n", num);

}
Beispiel #2
0
int main() {
    int n;
    int i;
    bool first_print = true;
    init_number();
    scanf("%d", &n);
    for(i = 1; i <= n; i++) {
        decompose(i);
    }
    for(i = 2; i <= n; i++) {
        if(composit_number[i] && record[i] >= 1) {
            if(record[i] == 1) {
                if(first_print) {
                    printf("%d", i);
                    first_print = false;
                }
                else
                    printf("*%d", i);
            }
            else {
                if(first_print) {
                    printf("%d^%d", i, record[i]);
                    first_print = false;
                }
                else
                    printf("*%d^%d", i, record[i]);
            }
        }
    }
    return 0;
}
stBigNum power(stBigNum tNumX, ulli iK){
	stBigNum tResult;
	init_number(&tResult, 1);
	while(iK > 0){
		if(odd(iK)){
			tResult = multiply(tResult, tNumX);
		}
		tNumX = multiply(tNumX, tNumX);
		iK >>= 1;
	}
	return (tResult);
}
int main(){
	int N = 100;
	int i;
	stBigNum a[102],b;
	init_number(&b,0);
	freopen("pruebaBigNumbers.txt","rt",stdin);
	for(i=1; i<=N; ++i){
		read(&a[i]);
		b = add(b,a[i]);
	}
	write(&b);
	return 0;
}
Beispiel #5
0
numb_t         *
create_num()
{
	numb_t         *n;

	if (num_pool == 0)
		init_number();
	if ((n = fr_alloc(num_pool)) == 0) {
		no_mem("create_num");
	}
	memset(n, 0, sizeof(numb_t));
	return n;
}
Beispiel #6
0
int delete_num(numb_t *x)
{

	if (num_pool == 0) {
		init_number();
	}
	if (x == 0) {
		return -1;
	}
	if (x->digit) {
		FREEMEM(x->digit);
	}
	fr_free(num_pool, x);
	return 1;
}
Beispiel #7
0
obj* mult(obj* a, obj* b) {
  return init_number(*(double*)a->contents * *(double*)b->contents);
} 
Beispiel #8
0
obj* plus(obj* a, obj* b) {
  return init_number(*(double*)a->contents + *(double*)b->contents);
}
Beispiel #9
0
 explicit Digit(unsigned long nb_digit, unsigned long init_val): 
     next_(nullptr), prev_(nullptr) 
 {
     init_number(nb_digit, init_val);
 }
Beispiel #10
0
Datei: memory.c Projekt: 8l/SECD
cell_t *new_number(secd_t *secd, int num) {
    cell_t *cell = pop_free(secd);
    return init_number(cell, num);
}