发布网友 发布时间:2022-04-18 19:01
共3个回答
热心网友 时间:2022-04-18 20:30
平方直接两个数相乘即可。
平方根可以通过这个数本身和0之间进行折半查找的方法,对数据进行计算。
当两数相乘大于这个数时,重置最大值;小于这个数时,重置最小值。由于存在除不尽的数,可以加上一个精度进行判断。
#include<stdio.h>
#include<math.h>
double squareFun(double x) // 平方
{
return x*x;
}
double sqrtFun(double x, int precision) // 开方
{
double a = 0, b = x, mid = x/2, val = pow(10, -precision);
if (x < 0)
return -1;
while (true) // 循环折半查找
{
if (fabs(mid*mid-x) <= val) // 达到进度则退出
break;
if (mid*mid > x)
b = mid; // 重置最大值
else
a = mid; // 重置最小值
mid = (a+b)/2;
}
return mid;
}
int main()
{
double d = sqrtFun(2, 15);
printf("%.15lf\n", d);
printf("%.15lf\n", squareFun(d));
}
热心网友 时间:2022-04-18 21:48
#include<stdio.h>热心网友 时间:2022-04-18 23:23
#include <stdio.h>