第17题:X的平方根

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

 

格式:

 

   输入一个数x,输出它的平方根。直到碰到结束符号为止。

 

   千万注意:是int类型哦~

 

样例输入:

1

2

3

4

5

6

7

8

9

 

样例输出:

1

1

1

2

2

2

2

2

3

 

这一题意思很清晰,求一整数的平方根的下取整的数(即不大于这个数在数学上的平方根的最大整数),例如8,22 < 8 < 32,所以8的平方根取2。

代码如下:

#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;

}

 

注意:这边求平方根并不是从小到大依次去比较直到大于输入的数为止,那样做会超时。至于为什么这样也能求得平方根的整数部分,可以去看看数学求解一个数的平方根的方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值