手算開方是我們初中時期就學習的知識,以前學習過現在複習下。
以√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);
}
掩飾結果: