.NET 4.x Деление столбиком двух чисел - C#

Узнай цену своей работы

Формулировка задачи:

Просто поделить два произвольно больших числа - вывести целую часть и остачу. Буду очень благодарен за любую помощь

Казалось бы очень просто, но не знаю как правильно сделать, кровь из носу надо это!

Решение задачи: «.NET 4.x Деление столбиком двух чисел»

textual
Листинг программы
  1.         private static void Main(string[] args)
  2.         {
  3.             string first = "1000000";
  4.             string second = "0000033";
  5.             // Длинны строк(массивов) должны совпадать
  6.             int[] fNum = first.Select(f => f - '0').ToArray();
  7.             int[] sNum = second.Select(f => f - '0').ToArray();
  8.            
  9.             Solve(fNum, sNum);
  10.         }
  11.  
  12.         private static void Solve(int[] a, int[] b)
  13.         {
  14.             long count = 0;
  15.             while (BiggerOrEqual(a, b))
  16.             {
  17.                 a = Minus(a, b);
  18.                 count++;
  19.             }
  20.  
  21.             Console.WriteLine("Целая часть: {0}", String.Join("", count));
  22.             Console.WriteLine("Остаток: {0}", String.Join("", a));
  23.         }
  24.  
  25.         private static bool BiggerOrEqual(int[] a, int[] b)
  26.         {
  27.             // a больше b
  28.             bool result = true;
  29.  
  30.             for (int i = 0; i < a.Length; i++)
  31.             {
  32.                 if (a[i] > b[i]) return true;
  33.                 else if (a[i] < b[i]) return false;
  34.             }
  35.  
  36.             return result;
  37.         }
  38.  
  39.         private static int[] Minus(int[] first, int[] second)
  40.         {
  41.             int[] result = new int[first.Length];
  42.  
  43.             for (int i = first.Length - 1; i >= 0; i--)
  44.             {
  45.                 if (first[i] < second[i] || first[i] < 0)
  46.                 {
  47.                     first[i - 1] -= 1;
  48.                     first[i] = 10 + first[i];
  49.                 }
  50.  
  51.  
  52.                 result[i] = first[i] - second[i];
  53.             }
  54.  
  55.             return result;
  56.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.727 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы