练习题目三
用递归进行阶乘
运行代码
#include<iostream> using namespace std; int f(int n); int n; int main() { cin>>n; cout<<f(n); } int f(int n) { if(n<=1){ return 1; } return n*f(n-1); }
编写心得
递归的核心个人感觉是在返回return,比如这个阶乘的函数,当他返回值为nf(n-1)的时候,继续带入f(n)的函数,公式就会一直乘以f(n-1),即nf(n-1)....f(2)*f(1),在f(1)这里需要加一个if条件判断n在此时是不是需要继续进行递归,若不加入if判断,程序会一直进行下去导致程序崩溃,加入if条件当n减至1时停止程序进行并输出,从而达到程序运用递归的方法去进行阶乘的效果。理解了return的用法,也就进而理解了递归的使用方法。