hutods
hutods
采纳率100%
2015-12-12 13:03 阅读 1.7k
已采纳

用递归求一个正数的开平方,精确到小数点后3位,要求使用递归实现

用递归求一个正数的开平方,精确到小数点后3位,要求使用递归实现

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    caozhy 从今以后生命中的每一秒都属于我爱的人 2015-12-12 13:11
     #include <stdio.h>
    double sq(double d, double r1, double r2)
    {
        double diff = ((r1 + r2) * (r1 + r2)) / 4.0 - d;
        if (diff >= -0.000001 && diff <= 0.000001) return (r1 + r2) / 2;
        if (diff < -0.000001)
            return sq(d, (r1 + r2) / 2.0, r2);
        else
            return sq(d, r1, (r1 + r2) / 2.0);
    }
    int main()
    {
        double x = 2.0;
        double r = sq(x, 0, x);
        printf("%lf", r);
    }
    
    
    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2015-12-12 13:11
    点赞 评论 复制链接分享