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