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

来源:互联网 发布:为什么淘宝没有烟卖 编辑:程序博客网 时间:2024/05/21 14:14

有一分数序列: 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


原创粉丝点击