Считая, что в этих строках находятся очень длинные числа, сформируйте третью строку- сумму этих чисел. - C#
Формулировка задачи:
Вот сама задача: Даны две символьные строки, состоящие только из цифр (длина каждой более 10 символов). Считая, что в этих строках находятся очень длинные числа, сформируйте третью строку- сумму этих чисел.
P.S. считает лишь маленькое значение чисел, а по условию задачи у меня должно быть введено число больше 10 значений, но постоянно вылазит ошибка..
Листинг программы
- Console.WriteLine("Введите первое число");
- string S1 = Console.ReadLine();
- int a = int.Parse(S1);
- Console.WriteLine("Введите второе число");
- string S2 = Console.ReadLine();
- int b = int.Parse(S2);
- int c = a + b;
- Console.WriteLine(a.ToString() + " + " + b.ToString() + " = " + c.ToString());
- Console.ReadLine();
Решение задачи: «Считая, что в этих строках находятся очень длинные числа, сформируйте третью строку- сумму этих чисел.»
textual
Листинг программы
- public static string Add(string a, string b)
- {
- //делаем строки одинаковой длины, добавляя в начало короткой нужное количество нулей
- if (a.Length < b.Length) a = new string('0', b.Length - a.Length) + a;
- if (a.Length > b.Length) b = new string('0', a.Length - b.Length) + b;
- //объявляем строку суммы
- string sumStr = string.Empty;
- //sumDigits - сумма соответствующих разрядов числа
- //over - остаток, т.е. единица, переходящая в рязряд, если сумма предыдущих разрядов числа >=10
- int over = 0, sumDigits;
- //перебираем символы от последнего к первому
- for (int i = a.Length - 1; i >= 0; i--)
- {
- //сумма соответствующих разрядов числа + остаток от предыдущей суммы
- sumDigits = int.Parse(a[i].ToString()) + int.Parse(b[i].ToString()) + over;
- //к строке суммы спереди добавляем количество единиц в sumDigits
- sumStr = sumDigits % 10 + sumStr;
- //а количество десятков идет в остаток
- over = sumDigits / 10;
- }
- //если сумма старших разрядов >=10, то к сумме спереди добавляем 1
- if (over > 0) sumStr = "1" + sumStr;
- //возвращаем строку суммы
- return sumStr;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д