平方直接两个数相乘即可。平方根可以通过这个数本身和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));}
阅读全文 >