基于Visual C++2013拆解世界五百强面试题--题15-递归相加

有一分数序列: 1/2 , 1/4 , 1/6 , 1/8 ......,用递归的方法,求此数列20项之和.


可以看出规律:每一项位1/n*2

这个很容易些递归,但是要注意一点,使用浮点数相除保存:


下面上代码:


#include <stdio.h> 

double fun(int i)
{
	//如果是第一项直接返回结果
	if (i == 1)
		return 1.0 / (double)2;
	return fun(i - 1) + 1.0 / (double)(2 * i);//递归相加
}

int main()
{
	//打印出前二十项之和
	printf("%lf\n", fun(20));
	return 0;
}

运行结果为:




如果有什么问题和疑问可以在下面留言互相探讨。

原题我已经上传到这里了http://download.csdn.net/detail/yincheng01/6461073 ,

解压密码为 c.itcast.cn


posted on 2013-10-25 16:51  三少爷的剑123  阅读(126)  评论(0编辑  收藏  举报

导航