您的位置:首页 > 编程语言 > C语言/C++

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

2013-10-25 16:51 295 查看
有一分数序列: 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: