计蒜客 -- 求平方根

设计函数int sqrt(int x),计算 x 的平方根。

输入格式

输入一个 整数 x,输出它的平方根。直到碰到文件结束符(EOF)为止。

输出格式

对于每组输入,输出一行一个整数,表示输入整数的平方根。

样例输入

1
2
3
4
5
6
7
8
9
样例输出

1
1
1
2
2
2
2
2
3


当时忘了快速求平方根法是参考的哪里的了……….再去找找不到了

#include<stdio.h>

int sqrt(int x);

int main(void) {
       int n;
       while(scanf("%d",&n)!=EOF)
              printf("%d\n",sqrt(n));
       return 0;
}



int sqrt(int x) {
       int sum =x;
       int j;
       for(j = 1;j <= sum; j++) {
              x =x -(2*j-1);
              if(x< 0) return j-1;
              if(x== 0) return j;
       }

       return 0;

}

还有牛顿迭代法:

#include<stdio.h>  
#include<math.h>  
main()  
{  
    float a,x0,x1;  
    int flag=1;  
    while(flag)  
    {  
        printf("a=");  
        scanf("%f",&a);  
        if(a>=0)  
        flag=0;  
        else  
        printf("你所输入的数不能求平方根,请重试\n_______________________________\n\n");  
    }  
    x0=1;  
    x1=x0+1;  
    while(fabs(x0-x1)>=1e-10)  
    {  
        x0=x1;  
        x1=0.5*(x0+a/x0);  
    }  
    printf("%.2f的平方根是:%.2f\n",a,x1);  
}  
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值