阶乘、斐波那契等递归实现
2010-10-27 10:40
344 查看
常见递归方法的实现,注意终结条件和递归过程即可。
#include <stdio.h>
#include <tchar.h>
#include <cstdlib>
#include <iostream>
#include <sys/timeb.h>
#include <ctime>
#include <climits>
#include <cassert>
#include <cmath>
using namespace std;
//递归求和
int sum(int *arr , int len)
{
if(len == 1)
{
return arr[0];
}
else
{
return arr[len-1] + sum(arr,len-1);
}
}
//递归求阶乘
int factorial(int n)
{
if(n == 0)
{
return 1;
}
else
{
return n*factorial(n-1);
}
}
//递归求斐波那契
int fibonacci(int n)
{
if( n <=2 )
{
return 1;
}
else
{
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int n = 0;
cout << "请输入数组的大小:" ;
cin >> n;
int *arr = new int
;
for(int i=0;i<n;++i)
{
arr[i] = rand() % 100;
}
cout << "该数组随机产生的数值为:" ;
for(int i=0;i<n;++i)
{
cout << arr[i] << " ";
}
cout << endl << "该数组的和为:" << sum(arr,n) << endl;
for(int i=0;i<10;++i)
{
cout << "factorial(" << i <<") = " << factorial(i) << endl;
}
for(int i=0;i<10;++i)
{
cout << "fibonacci(" << i <<") = " << fibonacci(i) << endl;
}
system("pause");
return 0;
}
#include <stdio.h>
#include <tchar.h>
#include <cstdlib>
#include <iostream>
#include <sys/timeb.h>
#include <ctime>
#include <climits>
#include <cassert>
#include <cmath>
using namespace std;
//递归求和
int sum(int *arr , int len)
{
if(len == 1)
{
return arr[0];
}
else
{
return arr[len-1] + sum(arr,len-1);
}
}
//递归求阶乘
int factorial(int n)
{
if(n == 0)
{
return 1;
}
else
{
return n*factorial(n-1);
}
}
//递归求斐波那契
int fibonacci(int n)
{
if( n <=2 )
{
return 1;
}
else
{
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int n = 0;
cout << "请输入数组的大小:" ;
cin >> n;
int *arr = new int
;
for(int i=0;i<n;++i)
{
arr[i] = rand() % 100;
}
cout << "该数组随机产生的数值为:" ;
for(int i=0;i<n;++i)
{
cout << arr[i] << " ";
}
cout << endl << "该数组的和为:" << sum(arr,n) << endl;
for(int i=0;i<10;++i)
{
cout << "factorial(" << i <<") = " << factorial(i) << endl;
}
for(int i=0;i<10;++i)
{
cout << "fibonacci(" << i <<") = " << fibonacci(i) << endl;
}
system("pause");
return 0;
}
相关文章推荐
- #DayOne#,分别用循环和递归的方式实现阶乘
- 斐波那契数列的递归与非递归算法实现及其时间复杂度
- 斐波那契函数非递归实现(C++实现)
- 斐波那契数列实现--递归,迭代,数组,队列
- JavaScript使用递归和循环实现阶乘的实例代码
- 斐波那契序列的递归和非递归的实现
- JS匿名函数递归实现阶乘
- 自己写的关于实现数字阶乘的方法,一个采用普通方法,一个是采用递归
- c语言递归实现100的阶乘
- C#采用递归实现阶乘的方法
- java 递归实现数的阶乘
- 递归实现阶乘
- 递归实现n的阶乘
- 递归实现n的阶乘
- <算法>递归实现阶乘运算
- 斐波那契序列的递归和非递归的实现
- 递归和非递归方法实现斐波那契
- Python实例浅谈之四递归求斐波那契、阶乘、累加和
- 斐波那契数组-递归和循环实现
- Python:斐波那契数列递归实现方法