Здравствуйте! 
Возникла проблема описанная в назывании. Была идея с переводом числа в другую систему счисления, но идея не работает, мне нужно следующее:
"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 - нельзя.
	
	
	C#
	
		
		
								
				
				
									
																				
							
			
	
		
			C#: Умножения чисел(чисел в строках) больших Int64 MaxValue без использования System.Numerics и BigInteger
 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); 
    } 
} 
 
								
									Аслан Мырзабеков								
								Спасибо! Очень хорошая идея!! Казалось что умножение в столбик будет реализовать немного труднее..большое спасибо!							
											Похожие вопросы
- Программирование на C# - целые числа
- Программа для сложения, вычитания, умножения и деления чисел в двоичной, восьмеричной, шестнадцатеричной системах
- (c#) Нужна помощь в работе со строками. (лучше если будет не само решение, а объяснение, спасибо)
- C#. Как сгенерировать случайное число в диапозоне, исключающее одно число. C#
- Добавить символ в конце введённой строки, если количество символов нечётное, на C#
- System.InvalidCastException: "Unable to cast object of type 'System.String[]' to type 'System.IConvertible'."
- Решить текстовую задачу с использованием словаря на C#
- Как оптимизировать вычисление числа П? C#
- [c#] как найти все простые делители числа, ответ в массиве int
- Как сгенерировать случайные числа в C#?
