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

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

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

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

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

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

textual
Листинг программы
        private static void Main(string[] args)
        {
            string first = "1000000";
            string second = "0000033";
            // Длинны строк(массивов) должны совпадать
            int[] fNum = first.Select(f => f - '0').ToArray();
            int[] sNum = second.Select(f => f - '0').ToArray();
            
            Solve(fNum, sNum);
        }
 
        private static void Solve(int[] a, int[] b)
        {
            long count = 0;
            while (BiggerOrEqual(a, b))
            {
                a = Minus(a, b);
                count++;
            }
 
            Console.WriteLine("Целая часть: {0}", String.Join("", count));
            Console.WriteLine("Остаток: {0}", String.Join("", a));
        }
 
        private static bool BiggerOrEqual(int[] a, int[] b)
        {
            // a больше b
            bool result = true;
 
            for (int i = 0; i < a.Length; i++)
            {
                if (a[i] > b[i]) return true;
                else if (a[i] < b[i]) return false;
            }
 
            return result;
        }
 
        private static int[] Minus(int[] first, int[] second)
        {
            int[] result = new int[first.Length];
 
            for (int i = first.Length - 1; i >= 0; i--)
            {
                if (first[i] < second[i] || first[i] < 0)
                {
                    first[i - 1] -= 1;
                    first[i] = 10 + first[i];
                }
 
 
                result[i] = first[i] - second[i];
            }
 
            return result;
        }

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


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

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

11   голосов , оценка 3.727 из 5
Похожие ответы