您的位置:首页 > 其它

阶乘、斐波那契等递归实现

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: