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); }
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; }
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; }
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; }
obj* mult(obj* a, obj* b) { return init_number(*(double*)a->contents * *(double*)b->contents); }
obj* plus(obj* a, obj* b) { return init_number(*(double*)a->contents + *(double*)b->contents); }
explicit Digit(unsigned long nb_digit, unsigned long init_val): next_(nullptr), prev_(nullptr) { init_number(nb_digit, init_val); }
cell_t *new_number(secd_t *secd, int num) { cell_t *cell = pop_free(secd); return init_number(cell, num); }