手算开方 以及C开方,C计算正切值

手算开方是我们初中时期就学习的知识,以前学习过现在复习下。

以√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);
}

 掩饰结果:

 

posted @ 2013-03-15 19:01  yanggm  阅读(1061)  评论(0编辑  收藏  举报