• 1.Напишите программу, которая в последовательности натуральных чисел находит кол-во чисел кратных 8 из интервала [121,400]
    Вход: программа получает на вход последовательность натуральных чисел, заканчивающиеся на 0. Кол-во чисел не превышает 1000, а сами числа не превышают 30000.
    Выход: Программа должна вывести одно число-кол-во трехзначных чисел кратных 8 и принадлежащих интервалу [121,400]

    2. Напишите программу, которая в последовательности находит сумму чисел, не кратных 8 и оканчивающееся на 2.
    Вход: Программа получает на вход кол-во чисел, а затем сами числа. Количество не превышает 1000, а сами числа не превышают 30000.
    Выход: программа должна вывести одно число- сумму чисел, не кратных 8 и оканчивающихся на 2.

    PascalABC.NET
    для 8го класса с незамысловатым решением

Ответы 1

  • 1. Чтобы найти количество чисел, кратных восьми, на заданном интервале [a;b], надо найти на этом интервале ближайшее к a число и потом прибавлять к нему по восемь, пока не пройдем весь интервал, считая, сколько чисел прошли. Но это глуповатый способ. Он просто и бездумно программируется, но как считали раньше, когда компьютеров не было?Определим остаток от деления а на 8. Если он нулевой, то a - первое из найденных чисел. Остаток от деления 121 на 8 равен 1, т.е. нам не повезло. Тогда прибавим к значению а число 8 и вычтем найденный остаток.121+8-1=128. Это и есть наше первое число. Сужаем интервал [128;400]. Чтобы найти, сколько на нем чисел, кратных 8, надо разделить нацело 400-128 на 8 и прибавляем к результату единицу. Получаем 35 - это и есть ответ.Программу составим универсальную, которая будет находить на интервале [a;b] количество чисел, кратных m.PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018Внимание! Если программа не работает, обновите версию!begin  var (a,b):=ReadInteger2('Введите через пробел границы интервала:');  var m:=ReadInteger('Укажите число для поиска кратных ему:');  var r:=a mod m;  if r>0 then a:=a+8-r;  Writeln('Количество чисел равно ',(b-a) div m +1)end.ПримерВведите через пробел границы интервала: 121 400Укажите число для поиска кратных ему: 8Количество чисел равно 352. В этой задаче все совсем просто. Читаем очередное число p, находим остаток от деления p на восемь. Если он ненулевой, проверяем, чтобы остаток от деления p на 10 был равен двум. Если и это верно, добавляем p к накапливаемой сумме s. Так поступаем n раз.begin  var n:=ReadInteger('n=');  var s:=0;  var p:integer;  for var i:=1 to n do begin    Read(p);    if p mod 8 <> 0 then      if p mod 10 = 2 then s:=s+p    end;  Writeln('Сумма отобранных чисел равна ',s)end.Примерn= 8127 32 222 45 80 832 702 29Сумма отобранных чисел равна 924
    • Автор:

      spicylfzo
    • 1 год назад
    • 7
  • Добавить свой ответ

Войти через Google

или

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

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

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