#C++初学记录(阶乘#递归)
2024-08-25 22:18:09
练习题目三
用递归进行阶乘
运行代码
#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的用法,也就进而理解了递归的使用方法。
最新文章
- document.documentElement.clientHeight 与 document.body.clientHeight(杜绝千篇一律的抄袭!!)
- CheckedComboBoxEdit 重置初始化值的方法
- mysql load data infile的使用 和 SELECT into outfile备份数据库数据
- LeetCode - Populating Next Right Pointers in Each Node II
- cmake安装的软件要怎么卸载
- 关于C++类中的成员
- Nginx_地址重写(rewrite)_日志管理(log_format)_压缩输出_Nginx设定限速_Nginx设置反向代理及反向代理缓存
- Codeforces335B - Palindrome(区间DP)
- php接收二进制数据流转换成图片
- http协言和web本质
- 让你的Dapper像EF一样调用 开源~!
- linux 防火墙操作
- Error: Unable to access xxx.jar
- 新版Ubuntu安装日文输入法
- 常用HDFS操作命令
- 帝国cms调用栏目自定义字段(栏目简介)如何操作
- Django 自定义模板标签TemplateTags
- Add Again UVA - 11076(排列之和)
- Android Gradle 引入 aar 方式
- 《C++ Primer Plus》12.6 复习各种(类和动态内存分配的)技术 笔记