110,569
社区成员
发帖
与我相关
我的任务
分享
public class MyFucntions
{
private static Boolean TwoBigNumbersAdd(string num1, string num2, out string result)
{
string bigone = "";
string tmpStr = "";
string smallone = "";
int len = 0;
if (num1.Length < num2.Length)
{
len = num1.Length;
bigone = num2;
smallone = num1;
}
else
{
len = num2.Length;
bigone = num1;
smallone = num2;
}
tmpStr = bigone.Substring(bigone.Length - len);//取出len这么长的低位部分
bigone = bigone.Substring(0, bigone.Length - len); //取出大数剩余的高位部分
int tmp = 0; //进位
result = "";
//低位部分的计算
for (int i = len-1; i >= 0; i--)
{
try
{
int a = Convert.ToInt32(Convert.ToString( smallone[i]));
int b = Convert.ToInt32(Convert.ToString(tmpStr[i]));
int sum = a + b + tmp;
result = Convert.ToString( sum % 10 ) + result;
tmp = sum / 10;
}
catch (Exception e)
{
result = "error";
return false;
}
}
//剩余高位部分的计算
if (tmp != 0)
{
for (int i = bigone.Length - 1; i >= 0; i--)
{
try
{
int a = Convert.ToInt32(Convert.ToString(bigone[i]));
int sum = a + tmp;
result = Convert.ToString(sum % 10) + result;
tmp = sum / 10;
}
catch (Exception e)
{
result = "error";
return false;
}
}
}
else
{
result = bigone + result;
}
return true;
}
public static Boolean BigNumbersAdd(string[] nums, out string Result)
{
string firstnum = nums[0];
try
{
for (int i = 1; i < nums.Length; i++)
{
if (!TwoBigNumbersAdd(firstnum, nums[i], out firstnum))
{
Result = "Error";
return false;
}
}
}
catch (Exception e)
{
Result = "Error";
return false;
}
Result = firstnum;
return true;
}
}
string m;
string n;
string sum =Convert .ToString( Convert.ToInt64(m)+Convert.ToInt64(n));