A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wangjunjun 初级黑马   /  2014-7-27 14:57  /  965 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

//有一分数序列: 1/2 , 1/4 , 1/6 , 1/8 ......,用递归的方法,求此数列100项之和.
//很容易看出规律  各项 1/(1*2), 1/(2*2), 1/(3*2), 1/(4*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()
{
        //打印出前100项之和
        printf("%lf\n", fun(100));
        return 0;
}

点评

看错了,抱歉。。。你的程序是对的  发表于 2014-7-27 16:01
return fun(i - 1) + 1.0 / (double)(2 * i); 这句应该是 return fun(i + 1) + 1.0 / (2 * i);  发表于 2014-7-27 15:59

3 个回复

正序浏览
谢谢关注
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马