.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;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д