int factorial_recursive(int a){ if(a == 0){ return 1; }else{ ; } return a*factorial_recursive(a-1); }
void factorial_recursive(mpz_t result, mpz_t const n) { if (mpz_cmp_ui(n, 1) <= 0) { mpz_init_set_ui(result, 1); } else { mpz_t i; mpz_init_set(i, n); mpz_sub_ui(i, i, 1); factorial_recursive(i, i); mpz_mul(result, n, i); } }
int main(void) { clock_t start, finish; start = clock(); for (int j=0; j<100000; j++) for (int i=0; i<14; i++) factorial_recursive(i); finish = clock(); printf("recursive factorial : %f\n", (double)(finish-start)/CLOCKS_PER_SEC); start = clock(); for (int j=0; j<100000; j++) for (int i=0; i<14; i++) factorial_repeat(i); finish = clock(); printf("repeat factorial : %f\n", (double)(finish-start)/CLOCKS_PER_SEC); printf("factorial_recursive(10) : %d\n", factorial_recursive(10)); printf("factorial_repeat(10) : %d\n", factorial_repeat(10)); }
int main(void) { factorial_recursive(); fib_main(); combinator_main(); fn_main(); gcd_main(); gcd_main2(); generate_perm(); generate_perm2(); hanoi_main(); hanoi_main2(); maze(); maze2(); maze3(); maze4(); quick_main(); quick_main2(); printf("end"); return EXIT_SUCCESS; }
int factorial_recursive(int n) { if (n == 0) return 1; return n*factorial_recursive(n-1); }
/** * faculty (n) recursive */ inline std::size_t factorial_recursive(std::size_t i) { return i <= 1 ? 1 : i * factorial_recursive(i - 1); }