如何用递归的通俗方法计算阶乘?
- 内容介绍
- 文章标签
- 相关推荐
本文共计858个文字,预计阅读时间需要4分钟。
递归是最佳且最全面的理解方法。首先,划分递归的三大要素,递归都必须从这三个要素入手。第一要素:明确这个函数想干什么?对于递归,首先要明确这个函数想要解决的问题是什么。对于递归,我认为最重要的一件事就是,明确这个函数想干什么。
递归最好最全的理解方法
首先要划分好递归的三大要素,只要是递归,都要从三大要素入手
第一要素:首先你要明确这个函数想要干什么
对于递归,我觉得很重要的一个事就是,这个函数的功能是什么,他要完成什么样的一件事,而这个是完全由你个人来定义的。也就是说我们先不管函数里面的代码是什么,而是要先明白,你这个函数是要干什么。
例如
//用递归算出阶乘public static int f(int n) {}
这个函数的功能是算阶乘。那么,我们定义了一个函数,并且定义了它的功能是什么。接下来我们来看第二要素
第二要素:寻找递归的结束条件
所谓递归,就是会在函数内部代码中,调用这个函数本身,所以,我们必须找出递归的结束条件,不然的话会一直调用自己,进入死循环。也就是说我们需要找出当参数为啥时,递归结束,之后直接把结果返回,请注意,这个时候我们必须能根据这个参数的值,能够直接知道函数的结果是什么。
例如,上面那个例子,当n = 1时,f(1)=1。再把第二要素加入代码中
public static int f(int n) {if(n==1){
return 1;
}
}
第三要素:找出函数的等价关系式
我们要不断的缩小参数的范围,缩小之后,我们可以通过一些辅助的变量或者操作,使原函数的结果不变。
例如f(n)这个范围比较大,我们可以让f(n)=n*f(n-1)。
本文共计858个文字,预计阅读时间需要4分钟。
递归是最佳且最全面的理解方法。首先,划分递归的三大要素,递归都必须从这三个要素入手。第一要素:明确这个函数想干什么?对于递归,首先要明确这个函数想要解决的问题是什么。对于递归,我认为最重要的一件事就是,明确这个函数想干什么。
递归最好最全的理解方法
首先要划分好递归的三大要素,只要是递归,都要从三大要素入手
第一要素:首先你要明确这个函数想要干什么
对于递归,我觉得很重要的一个事就是,这个函数的功能是什么,他要完成什么样的一件事,而这个是完全由你个人来定义的。也就是说我们先不管函数里面的代码是什么,而是要先明白,你这个函数是要干什么。
例如
//用递归算出阶乘public static int f(int n) {}
这个函数的功能是算阶乘。那么,我们定义了一个函数,并且定义了它的功能是什么。接下来我们来看第二要素
第二要素:寻找递归的结束条件
所谓递归,就是会在函数内部代码中,调用这个函数本身,所以,我们必须找出递归的结束条件,不然的话会一直调用自己,进入死循环。也就是说我们需要找出当参数为啥时,递归结束,之后直接把结果返回,请注意,这个时候我们必须能根据这个参数的值,能够直接知道函数的结果是什么。
例如,上面那个例子,当n = 1时,f(1)=1。再把第二要素加入代码中
public static int f(int n) {if(n==1){
return 1;
}
}
第三要素:找出函数的等价关系式
我们要不断的缩小参数的范围,缩小之后,我们可以通过一些辅助的变量或者操作,使原函数的结果不变。
例如f(n)这个范围比较大,我们可以让f(n)=n*f(n-1)。

