设计函数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);
}