Составить метод и написать программы нахождения творенья чисел, модуль которых меньше

Составить алгоритм и написать программки нахождения творенья чисел, модуль которых меньше 10 из 20 вводимых с клавиатуры целых чисел. В языке Паскаль!

Задать свой вопрос
2 ответа

PascalABC.NET 3.4.2, сборка 1884 от 24.11.2018

Внимание! Если программка не работает, обновите версию!

begin

 var a := ReadSeqInteger(20).Where(t -gt; Abs(t) lt; 10)

     .Aggregate(BigInteger(1), (p, q)-gt; p * q).Println

end.

Пример

9 9 9 9 9 9 9 9 9 9 9 9 9 -9 -9 -9 -9 9 9 9

12157665459056928801

var a,p,i:integer;

begin

p:=1;

for i := 1 to 20 do

begin

read(a);

if (abs(a) lt; 10)

then p := p * a;

end;

write(p);

end.

Людмила Григорьичева
Допустим мы ввели 20 раз число 9. Творенье равно 9^20, что примерно сочиняет 1.216х10^19. На переменной типа integer получаем переполнение - и неверный результат. Переменная типа int64, даже если он есть в той версии, которой пользуется автор ответа, позволяет записать число порядка 0.9 22х10^19, т.е. для 20 девяток тоже произойдет переполнение. Вот таковой компот!
Василиса Хвощевская
Я даже проверить не поленился, 20 девяток дают итог 689956897. Да что там девятки, нельзя даже 20 троек ввести.
Таисия
Хорошо, возьму себе на заметку
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт