Problem Description
使用二分逼近法来求解根号N的近似值,eps为给定的精度。
Input Description
输入一个正整数N(n>=2)和一个精度值,相互之间以空格隔开。
Output Description
输出根号N的近似值,保留6位小数。
Sample Input
2 1e-6
Sample Output
1.414214
#include <stdio.h>
double f(double x);
double num (int N, double eps);
int main()
{
double eps;
int N;
scanf("%d %lf", &N, &eps);
printf("%.6f\n", num(N, eps));
return 0;
}
double f(double x)
{
return x * x;
}
double num (int N, double eps)
{
double left = 1, right = N, mid;
while(right - left >= eps)
{
mid = (left + right)/ 2;
if(f(mid) > N)
{
right = mid;
}
else
{
left = mid;
}
}
return mid;
}