R语言 请编写函数计算n的阶乘

Python017

R语言 请编写函数计算n的阶乘,第1张

function factorial(n){ return n >1 ? n * factorial(n-1) : 1}factorial(5)//120 以上函数可以求简单的n的阶乘 由于使用的是原生的乘法,所以计算范围有限主要使用了递归的方式进行计算,是求阶乘的常用方法之一

求和:f<-function(x) {

if(x==1)  1                

else     x+f(x-1)  }

或者尾递归:ff<-function(x,m=0){

if(x == 0)  m     

else    ff(x-1,m+x)  }

求阶乘:g<-function(x) {

if(x ==1) 1                     

else   x*g(x-1)  }

或者尾递归:gg<-function(x,acc=1){

if(x ==1) acc                       

else   gg(x-1,acc*x)  }