C#

C#: Умножения чисел(чисел в строках) больших Int64 MaxValue без использования System.Numerics и BigInteger

Здравствуйте!
Возникла проблема описанная в назывании. Была идея с переводом числа в другую систему счисления, но идея не работает, мне нужно следующее:
"2" * "3" = "6";
Причем это должно работать для всех чисел, в том числе и больших Int64 MaxValue в результате арифметической операции должна возвращаться строка
с результатом арифметической операции !! НО НЕ В ФОРМЕ ЭКСПОНЕНТЫ !! в примере экспонента только для наглядности:
"9,223,372,036,854,775,808" * "9,223,372,036,854,775,809" = "8.5070592e+37"
Пользоваться BigInteger и всеми методами System.Numerics - нельзя.
 using System; 
using System.Text;

class Program
{
static string AddStrings(string num1, string num2)
{
int carry = 0;
int i = num1.Length - 1;
int j = num2.Length - 1;
StringBuilder result = new StringBuilder();

while (i >= 0 || j >= 0 || carry > 0)
{
int digit1 = i >= 0 ? num1[i--] - '0' : 0;
int digit2 = j >= 0 ? num2[j--] - '0' : 0;

int sum = digit1 + digit2 + carry;
carry = sum / 10;
int remainder = sum % 10;

result.Insert(0, remainder);
}

return result.ToString();
}

static string MultiplyString(string num1, string num2)
{
if (num1 == "0" || num2 == "0")
return "0";

string result = "0";
int shift = 0;

for (int i = num1.Length - 1; i >= 0; i--)
{
int digit1 = num1[i] - '0';
int carry = 0;
StringBuilder partialResult = new StringBuilder();

for (int j = num2.Length - 1; j >= 0; j--)
{
int digit2 = num2[j] - '0';
int product = digit1 * digit2 + carry;
carry = product / 10;
int remainder = product % 10;

partialResult.Insert(0, remainder);
}

if (carry > 0)
partialResult.Insert(0, carry);

partialResult.Append('0', shift);
result = AddStrings(result, partialResult.ToString());
shift++;
}

return result;
}

static void Main(string[] args)
{
string num1 = "9223372036854775808";
string num2 = "9223372036854775809";

string product = MultiplyString(num1, num2);
Console.WriteLine(product);
}
}
ЮК
Юрий Квасников
310
Лучший ответ
Аслан Мырзабеков Спасибо! Очень хорошая идея!! Казалось что умножение в столбик будет реализовать немного труднее..большое спасибо!