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