1347: 平方根 [水题]
时间限制: 1 Sec 内存限制: 128 MB提交: 136 解决: 13 统计
题目描述
输入一个数,用递归算法求这个数的平方的根。
公式如下:x1=(x0+a/x0)/2
ps:如果x1-x0的绝对值小于1e-6时,默认为结果为x1
输入
输入T,表示有T组数据
输入一个数a,求出a的平方根。
1<=t<=100 , 0<=a<=10000
输出
输出t个a的平方根,保留3位小数。
样例输入
2
2
3
样例输出
-1.414 1.414
-1.732 1.732
解析:
0的平方根时0,其余的平方根都有两个。
程序如下:
#include<cstdio> #include<cmath> double fun(double a,double x0) { double x1,y; x1=(x0+a/x0)/2.0; if(fabs(x1-x0)>=0.00001) y=fun(a,x1); else y=x1; return y; } int main() { int t; scanf("%d",&t); while(t--) { double a; scanf("%lf",&a); if(a==0) printf("0.000\n"); else { double x1; x1=fun(a,1.0); printf("%.3lf %.3lf\n",-x1,x1); } } return 0; }