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