+ -
当前位置:首页 → 问答吧 → 用四则运算实现求平方根的功能

用四则运算实现求平方根的功能

时间:2010-09-02

来源:互联网

在c里面  用四则运算求一个正数的平方根,我有一个程序。但觉得不是太好。精度也不是太高。大家有没有更好的方法?
#include<stdio.h>

float j=1;
void sqt(double sq,int n)
{
        j*=0.1;
        sq+=j;
        while(1){
                if(sq*sq<n){
                        sq+=j;
                     }
                else
                        break;
        }
        sq-=j;
        if(n-sq*sq<0.000001){
                printf("%lf\n",sq);
               
        }
       else       
                sqt(sq,n);
       
}
int main()
{
        printf("Please input you N!\n");
        int n;int i=0;
        scanf("%d",&n);
        printf("you put %d\n",n);
        while(i<=n){
                if(i*i==n){
                        printf("sqrt(n)=%d\n",i);
                        break;
                }
                if(i*i<n)
                        i++;
                else
                        break;
        }
        sqt(i-1.0,n);
        return 0;}

作者: xiaoqing87316   发布时间: 2010-09-02

你这是直接枚举了,建议试试看牛顿迭代~~

作者: daybreakcx   发布时间: 2010-09-02

你要做什么,
这个是有公式的,随便查查就能找到

如果想做这方面的深入研究,可以看看gmplib

作者: phy0077   发布时间: 2010-09-02

好想法  谢谢啊!看来我是走弯路了。

作者: xiaoqing87316   发布时间: 2010-09-02

一本有名的算法书籍后面的练习。我自己试了下,觉得做的不是太好  就拿出来请教一下  回复3楼

作者: xiaoqing87316   发布时间: 2010-09-02

相关阅读 更多

热门下载

更多