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

Ответы 5

  • Допустим мы ввели 20 раз число 9. Произведение равно 9^20, что примерно составляет 1.216х10^19. На переменной типа integer получаем переполнение - и неверный результат. Переменная типа int64, даже если он есть в той версии, которой пользуется автор ответа, позволяет записать число порядка 0.9 22х10^19, т.е. для двадцати девяток тоже произойдет переполнение. Вот такой компот!
    • Автор:

      reyes86
    • 5 лет назад
    • 0
  • Я даже проверить не поленился, 20 девяток дают результат 689956897. Да что там девятки, нельзя даже 20 троек ввести.
    • Автор:

      donovan31
    • 5 лет назад
    • 0
  • Неплохо, возьму себе на заметку
  • var a,p,i:integer;

    begin

    p:=1;

    for i := 1 to 20 do

    begin

    read(a);

    if (abs(a) < 10)

    then p := p * a;

    end;

    write(p);

    end.

    • Автор:

      allen83
    • 5 лет назад
    • 0
  • PascalABC.NET 3.4.2, сборка 1884 от 24.11.2018Внимание! Если программа не работает, обновите версию!

    begin

     var a := ReadSeqInteger(20).Where(t -> Abs(t) < 10)

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

    end.

    Пример9 9 9 9 9 9 9 9 9 9 9 9 9 -9 -9 -9 -9 9 9 912157665459056928801
    • Автор:

      fátima80
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years