需求:不轉 int/long,直接對數值字符串逐位運算,支持任意長度的加減乘除。核心思路是模擬小學豎式計算:
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 實現,但需自寫核心邏輯以示理解。