• Написать программу на Паскале, которая считает произведение чисел, которые больше введенного числа, до 100. Числа только положительные.

Ответы 6

  • Вы хоть свою программу тестировали? Попробуйте ввести числа, меньше 85. Ваша программу будет считать неверно, ибо произведение числе от x до 100 достаточно велико и не вмещается ни в один тип, тем более 4-байтовый  integer. Мой вариант с длинной арифметикой был верный, а ваш, к сожалению, нет. 
  • Исправила, спасибо что заметили, сейчас программа выдает значения со степенью. Вроде бы, всё верно.
    • Автор:

      reeve
    • 6 лет назад
    • 0
  • Была опечатка в программе, исправил
  • Сейчас программа считает верно, но теряется некоторая точность. Хотя не думаю, что автору понадобятся все цифры числа)
  • var  s: real; a,x:integer;begin  writeln('введите целое число');  readln(a);  s := 1;  a := a + 1; for x := a to 100 {или 99, зависит от того, включается 100 или нет} do   begin   s := s * a;  a := a + 1;end;  writeln(s);end.
    • Автор:

      jaslene
    • 6 лет назад
    • 0
  • Решение с использование длинной арифметики.var  i, j, n, len, rem: integer;  a: array[1..200] of byte;begin  write('Введите число: ');  read(n);  len := 1;  a[1] := 1;  for i := n + 1 to 99 {100} do  begin    for j := 1 to len do    begin      rem := a[j] * i + rem;      a[j] := rem mod 10;      rem := rem div 10;    end;    while rem > 0 do    begin      inc(len);      a[len] := rem mod 10;      rem := rem div 10;    end;  end;  writeln('Произведение чисел из интервала (', n, '; 100): ');  for i := len downto 1 do write(a[i]);end.Пример работы программы:Введите число: 1Произведение чисел из интервала (1; 100): 1948348720420644788695888257080283249381963823594360049498643927185579338215778728274424636079639781709574621897447185108592230400000000000000000000
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

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

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

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