手算开方是我们初中时期就学习的知识,以前学习过现在复习下。
以√200 为列
一般我们以前得出的结论是:10 √2
如今以C为列,不可能显示这样的方式,所以要有详细的计算方式,如下:
以个位开始两为为一个断,200=2,00,后面有小数点的部分没计算一位曾加两个0
1.用除法运算,以一个数的平方为主,1*1=1,2*2=4,把200中的2提取出来进行计算,1<2<4 所以选择1,余数为1
2.拿出两个零则被除数为100,最麻烦的就是怎么去定义一个除数,下一位除数总是等会前面的商乘以20+试商,前面的商为1,则除数=(1*20+x)*x
x代表的是试商,即(1*20+4)*4=96<=100,则试的结果是4,则余数是100-96=4
3.又拿出两个0,则被除数是400,定义一个除数,除数=(14*20+x)*x 试商=(14*20+1)*1,即(14*20+1)*1=281<=400测试结果为1,则余数
400-281=119,记住14是怎么来的,是前面所有的商
4.又拿出两个0,则被除数是11900,定义一个除数,除数=(141*20+x)*x 试商=(141*20+4)*4,即(14*20+4)*4=281<=11312测试结果为4
就以截取小数点后面两位,结果=14.14
C的计算方式
#include <stdio.h>
#include <math.h>
#define RAD_TO_DEG (180/(4*atan(1))) //弧度计算成度的方法
void main(){
int x=10;
int y=10;
double magnitude=0;
double angle=0;
magnitude=sqrt(x*x+y*y); //200开方
angle=RAD_TO_DEG * atan2(x,y); //计算正切值
printf("%f /t %f",magnitude,angle);
}
掩饰结果: