平方直接两个早做数相乘即可。
平方根可以通过这个数本身和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))
}
intx=3,y=2float
a=2.5,b=3.5
(x+y)%2+(int)a/(int)b
1.计算x+y=3+2=5;
2.(x+y)%2表示除以2的余数。5/2=2余1
3.(int)a/(int)b;强制转换a=2,b=3a/b=2/3=0
所以结果是1+0=1;
注意:
1.float型转换为int型,只取整数部分卖谈腊拦不产生四舍五入中局碰等效果。如float型3.82转换为int结果就是3
2.两个int型相除,结果也为int型,也是取整数部分。如2/3=0.666...取整数部分结果就是0
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)