递归
2015-11-30 22:05
295 查看
int factorial (int val)
{
if (val > 1)
return factorial (val - 1) * val;
return 1;
}
需要注意传参时,val的设定不能过大,防止溢出。
且传入的值必须是 val-1而非val--,如果传入val--,每次factorial的递归调用都调用val,所有val值永远不会减到<1,函数将不段调用自身直到程序栈空间耗尽为止,段错误了。
#include <iostream>
#include <vector>
using namespace std;
递归输出vector对象的内容
void print_vec (const vector<string> &v, int i)
{
if (i == v.size()) return ;
cout << v[i++] << " ";
print_vec(v, i);
}
int main()
{
int i=0;
vector<string> v{"hello", "world", "your", "wu", "is", "too", "bigbig" };
print_vec(v, i);
return 0;
}
{
if (val > 1)
return factorial (val - 1) * val;
return 1;
}
需要注意传参时,val的设定不能过大,防止溢出。
且传入的值必须是 val-1而非val--,如果传入val--,每次factorial的递归调用都调用val,所有val值永远不会减到<1,函数将不段调用自身直到程序栈空间耗尽为止,段错误了。
#include <iostream>
#include <vector>
using namespace std;
递归输出vector对象的内容
void print_vec (const vector<string> &v, int i)
{
if (i == v.size()) return ;
cout << v[i++] << " ";
print_vec(v, i);
}
int main()
{
int i=0;
vector<string> v{"hello", "world", "your", "wu", "is", "too", "bigbig" };
print_vec(v, i);
return 0;
}
相关文章推荐
- Dropwizard(二) hibernate连接Mysql数据库
- startActivityForResult使用简介
- 【Leetcode】Single Number
- JSP取得绝对路径
- hibernate set集合配置排序
- JAVAEE 企业网站建设发布与网站备案流程
- mac安装命令行
- 关于php COOKIE和SESSION的一些理解
- Qt Creator在windows平台下显示中文问题
- R-store
- 菜鸟好文推荐(二十六)——避免Java堆空间错误的5个步骤
- extjs中去掉form表单标签后面的冒号
- Spark MLlib logistic回归案例
- 容器总结——关联式容器
- Javaweb邮箱验证注册的实现
- Delphi 的接口机制——接口操作的编译器实现过程(2)
- 二、C++多态性
- mysql中导入txt文件数据的操作指令
- 线性表排序(C语言版)
- Delphi 的接口机制——接口操作的编译器实现过程(1)