首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

C語言手動開方算法與標準庫平方根/正切計算

     編輯:關於C

手工開方(豎式開平方)是經典算術算法,本文還原步驟並對比 C 標準庫 sqrt()、atan2() 計算向量模長與角度。

手工開方演示:√200

  1. 小數點向左右分組:2 00 . 00 00 ...
  2. 首組 2,最大平方 ≤2 為 1,商 1,餘 1。
  3. 下拉 00 → 100。除數 = (前商×20) + 試商 × 試商。前商 1 → 除數 (20+x)*x。試 x=4:24*4=96≤100,商添 4,餘 4。
  4. 下拉 00 → 400。前商 14,除數 (280+x)*x。試 x=1:281*1=281≤400,商添 1,餘 119。
  5. 下拉 00 → 11900。前商 141,除數 (2820+x)*x。試 x=4:2824*4=11296≤11900,商添 4。
  6. 結果:14.14 (保留兩位小數)。

核心公式:新除數 = (已得商 * 20 + 試商) * 試商。

C 標準庫實現:向量模長與角度


#include 
#include 

#define RAD_TO_DEG (180.0 / (4 * atan(1.0))) // 180/π

int main() {
    int x = 10, y = 10;
    double magnitude = sqrt(x*x + y*y);       // √200 ≈ 14.1421
    double angle = RAD_TO_DEG * atan2(y, x);  // atan2(y,x) 返回弧度,含象限判斷
    printf("Magnitude: %.4f, Angle: %.4f°\n", magnitude, angle);
    return 0;
}

輸出

Magnitude: 14.1421, Angle: 45.0000°

關鍵函數說明

函數頭文件用途
sqrt(x)math.h平方根,x ≥ 0
atan2(y, x)math.h計算 atan(y/x),自動處理象限,返回 [-π, π]
atan(1)math.hπ/4,用於編譯期計算 π (4*atan(1))

編譯提示


gcc sqrt_demo.c -o sqrt_demo -lm  # 需鏈接數學庫 -lm
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved