首页 > 编程知识 正文

阶乘函数算法,调用阶乘函数

时间:2023-05-05 23:34:04 阅读:215934 作者:3629

三种方式实现阶乘函数 递归方式非递归方式尾递归方式

递归的一个小练习,直接上代码,没什么技术含量,关于尾递归的话,是一种编译器优化的方式,原理本人也不懂,感兴趣可以自行搜索,总之就是尾递归要比递归节省好多空间,只需两个递归函数的空间即可。

/* 2.递归与分治 阶乘函数*/#include <stdio.h>int factorial(int n){ if(n==0) return 1; else return n*factorial(n-1);}//递归 int factorial2(int n, int m){ if(n==0) return m; else { m *= n; } return factorial2(n-1,m);}//尾递归 int factorial3(int n){ int i,result = 1; for(i = n; i > 0; i--) result *= i; return result;}//非递归 int main() { int n; scanf("%d", &n); printf("%dn", factorial(n)); printf("%dn", factorial2(n, 1)); printf("%dn", factorial3(n)); return 0;}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。