练习题目三

用递归进行阶乘

运行代码

#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的用法,也就进而理解了递归的使用方法。

最新文章

  1. document.documentElement.clientHeight 与 document.body.clientHeight(杜绝千篇一律的抄袭!!)
  2. CheckedComboBoxEdit 重置初始化值的方法
  3. mysql load data infile的使用 和 SELECT into outfile备份数据库数据
  4. LeetCode - Populating Next Right Pointers in Each Node II
  5. cmake安装的软件要怎么卸载
  6. 关于C++类中的成员
  7. Nginx_地址重写(rewrite)_日志管理(log_format)_压缩输出_Nginx设定限速_Nginx设置反向代理及反向代理缓存
  8. Codeforces335B - Palindrome(区间DP)
  9. php接收二进制数据流转换成图片
  10. http协言和web本质
  11. 让你的Dapper像EF一样调用 开源~!
  12. linux 防火墙操作
  13. Error: Unable to access xxx.jar
  14. 新版Ubuntu安装日文输入法
  15. 常用HDFS操作命令
  16. 帝国cms调用栏目自定义字段(栏目简介)如何操作
  17. Django 自定义模板标签TemplateTags
  18. Add Again UVA - 11076(排列之和)
  19. Android Gradle 引入 aar 方式
  20. 《C++ Primer Plus》12.6 复习各种(类和动态内存分配的)技术 笔记

热门文章

  1. POJ 1384 Piggy-Bank(完全背包)
  2. hive的初步认识与hive的本质
  3. js 判断数据类型的几种方法
  4. Golang文件名命名规则
  5. Linux性能监控——CPU,Memory,IO,Network
  6. Chrome浏览器下CSS字体大小设置小于12px无效问题
  7. latest报错
  8. HTML5+CSS3 表格设计(Table)
  9. Windows Phone 页面切换动画
  10. 小程序开通微信支付 --- 微信商户平台绑定微信小程序APPID