Корень из числа типа BigInteger; - PascalABC.NET
Формулировка задачи:
Доброго времени суток!
Возник такой вопрос, у нас есть число типа BigInteger, а как из него извлечь корень? Можно ли это вообще сделать? В Real перевести число возможности нет.
Стал интересен этот вопрос, так что заранее спасибо за помощь или совет. (Ну еще и с наступающим всех)
Решение задачи: «Корень из числа типа BigInteger;»
textual
Листинг программы
begin var x := ReadString('Введите большое число:').ToBigInteger; var a := x div 2; var b := a - 1; repeat b := a; a := (a + x div a) div 2 until a >= b; Print('Корень =', a) end.
Объяснение кода листинга программы
- Вводится строка, представляющая собой большое число, и преобразуется в тип BigInteger с помощью метода ToBigInteger.
- Затем число делится на 2, чтобы получить начальное значение для цикла.
- В цикле, пока значение переменной a больше значения переменной b, выполняется следующее:
- Значение переменной b присваивается значению переменной a.
- Значение переменной a обновляется как среднее арифметическое между a и x, делённым на a, с последующим делением на 2.
- Цикл повторяется до тех пор, пока значение переменной a не станет больше или равным значению переменной b.
- Выводится значение переменной a, представляющее собой корень из исходного числа.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д