计蒜客-X的平方根

来源:互联网 发布:淘宝周大福是真的吗 编辑:程序博客网 时间:2024/04/27 17:00

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

输入格式

输入一个 整数 xx,输出它的平方根。直到碰到文件结束符(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){    for(int i=0;i<=x;i++){        if(i*i==x||((i+1)*(i+1)>x))        {            return i;            break;        }    }    }int main(){    int x;    while(scanf("%d",&x)!=EOF){        printf("%d\n",sqrt_(x));    }}

改进代码如下:

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

printf("I LOVE BOSS");