int factorial_tail(int n, int num1, int num2) { if (n < 2) { return num1; } else { return factorial_tail(n-1, num2, num1 + num2); } }
int main() { uint32_t n; printf("请输入N:\n"); while(EOF != scanf("%d",&n)) { printf("Fibnacci数列的第%d项为:%d\n",n,factorial_tail(n, 0, 1)); } }
int main(void) { int n = 20; int i; for (i = 0; i < n; i++) { printf("%2d: %d\n", i, factorial_tail(i, 1, 1)); } return 0; }
/** 求斐波那契数列的第n项 * * 采用尾递归求解。 */ int factorial_tail(int n,int acc1,int acc2) { if (n == 0) { return acc1; } else { return factorial_tail(n-1,acc2,acc1+acc2); } }
int main() { int n=10; int n_fact=factorial(n); printf("%d ",n_fact); n_fact=factorial_tenary(n); printf("%d ",n_fact); n_fact=factorial_tail(n); printf("%d ",n_fact); printf("\n"); }
double factorial_tail(double n, double acc) { if (n == 0) { return acc; } return ( factorial_tail( n - 1, n * acc) ); }
int main(void) { printf("\n %.0f ", factorial_tail(5,1) ); return 0; }