递归算法

/*编写一个递归函数完成以下公式的运算*/
//sum(n)=1-1/2+1/3-1/4......(其中n>0)
#include <iostream>
using namespace std;
//非递归算法
float FUN(int n)
{
	int m=1,temp=1;
	float total=0.0;
	while(m!=n+1)
	{
		total=total+1.0/m*temp;  //注意要写成1.0否则返回值是整型
		temp=temp*(-1);
		m++;
	}
	return total;
}

//递归算法
float Fun(int n)
{
	if(n==1)
		return 1;
	else if(n%2==0)
	{
		return Fun(n-1)-1.0/n;
	}
	else return Fun(n-1)+1.0/n;
}

int main()
{
    int a=5;
	cout<<Fun(a)<<endl;
	cout<<FUN(a)<<endl;
	return 0;
}


posted @ 2010-10-27 01:05  瓜蛋  阅读(177)  评论(0编辑  收藏  举报