基于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