/// <summary>
/// 加法函数,返回和,并将和存入sum字段;
/// </summary>
/// <returns></returns>
public string Plus(string operationNumberA, string operationNumberB)
{
string sum = ""; //存放和
int[] sumArr = new int[50]; //存放和的数组
int BigIntegerNumberALength = operationNumberA.Length - 1; //操作数A的长度
int BigIntegerNumberBLength = operationNumberB.Length - 1; //操作数B的长度
int flag = 0; //设置标记位,控制进位!
int k = 1; //记录和的位数
while (BigIntegerNumberALength >= 0 & BigIntegerNumberBLength >= 0)
{
sumArr[k] = ((operationNumberA.ToCharArray()[BigIntegerNumberALength] - '0') + (operationNumberB.ToCharArray()[BigIntegerNumberBLength] - '0') + flag) % 10;
flag = ((operationNumberA.ToCharArray()[BigIntegerNumberALength] - '0') + (operationNumberB.ToCharArray()[BigIntegerNumberBLength] - '0') + flag) / 10;
BigIntegerNumberALength--;
BigIntegerNumberBLength--;
k++;
}
while (BigIntegerNumberALength >= 0)
{
sumArr[k] = ((operationNumberA.ToCharArray()[BigIntegerNumberALength] - '0') + flag) % 10;
flag = ((operationNumberA.ToCharArray()[BigIntegerNumberALength] - '0') + flag) / 10;
k++;
BigIntegerNumberALength--;
}
while (BigIntegerNumberBLength >= 0)
{
sumArr[k] = ((operationNumberB.ToCharArray()[BigIntegerNumberBLength] - '0') + flag) % 10;
flag = ((operationNumberB.ToCharArray()[BigIntegerNumberBLength] - '0') + flag) / 10;
k++;
BigIntegerNumberBLength--;
}
if (flag == 1)
{
sum += '1';
}
for (int i = k - 1; i >= 1; i--)
{
sum += sumArr[i];
}
return sum;
//2469135782469135782468
}
/// 加法函数,返回和,并将和存入sum字段;
/// </summary>
/// <returns></returns>
public string Plus(string operationNumberA, string operationNumberB)
{
string sum = ""; //存放和
int[] sumArr = new int[50]; //存放和的数组
int BigIntegerNumberALength = operationNumberA.Length - 1; //操作数A的长度
int BigIntegerNumberBLength = operationNumberB.Length - 1; //操作数B的长度
int flag = 0; //设置标记位,控制进位!
int k = 1; //记录和的位数
while (BigIntegerNumberALength >= 0 & BigIntegerNumberBLength >= 0)
{
sumArr[k] = ((operationNumberA.ToCharArray()[BigIntegerNumberALength] - '0') + (operationNumberB.ToCharArray()[BigIntegerNumberBLength] - '0') + flag) % 10;
flag = ((operationNumberA.ToCharArray()[BigIntegerNumberALength] - '0') + (operationNumberB.ToCharArray()[BigIntegerNumberBLength] - '0') + flag) / 10;
BigIntegerNumberALength--;
BigIntegerNumberBLength--;
k++;
}
while (BigIntegerNumberALength >= 0)
{
sumArr[k] = ((operationNumberA.ToCharArray()[BigIntegerNumberALength] - '0') + flag) % 10;
flag = ((operationNumberA.ToCharArray()[BigIntegerNumberALength] - '0') + flag) / 10;
k++;
BigIntegerNumberALength--;
}
while (BigIntegerNumberBLength >= 0)
{
sumArr[k] = ((operationNumberB.ToCharArray()[BigIntegerNumberBLength] - '0') + flag) % 10;
flag = ((operationNumberB.ToCharArray()[BigIntegerNumberBLength] - '0') + flag) / 10;
k++;
BigIntegerNumberBLength--;
}
if (flag == 1)
{
sum += '1';
}
for (int i = k - 1; i >= 1; i--)
{
sum += sumArr[i];
}
return sum;
//2469135782469135782468
}