首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# 大整數四則運算:模擬手算實現無長度限制的字符串計算器

     編輯:程式設計綜合問答

需求:不轉 int/long,直接對數值字符串逐位運算,支持任意長度的加減乘除。核心思路是模擬小學豎式計算:

加法實現原理

  1. 反轉兩字符串,個位對齊。
  2. 逐位相加 + 進位,結果存新字符串。
  3. 最終反轉輸出。
public static string Add(string a, string b) {
    var sb = new StringBuilder();
    int carry = 0, i = a.Length-1, j = b.Length-1;
    while (i>=0 || j>=0 || carry>0) {
        int sum = carry;
        if (i>=0) sum += a[i--]-'0';
        if (j>=0) sum += b[j--]-'0';
        sb.Append(sum%10);
        carry = sum/10;
    }
    return new string(sb.ToString().Reverse().ToArray());
}

乳法優化技巧

  • 乘法採用「逐位相乘 + 錯位相加」,中間結果用 int[] 存儲避免頻繁字符串拼接。
  • 超過 int.MaxValue 位數時,可分塊處理(如每 9 位一塊)提升性能。
  • 減法、除法同理,處理借位、試商邏輯。

完整項目結構建議

BigIntegerCalculator/
├── StringCalculator.cs   // 核心靜態類
├── Operator.cs           // 枚舉 + - * /
└── Program.cs            // 測試入口

課堂作業可參考開源項目 BigInteger 實現,但需自寫核心邏輯以示理解。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved