В кафе продается мороженое по 3 или по 5 шариков в порции. Определить, можно ли купить K...

0 голосов
75 просмотров

В кафе продается мороженое по 3 или по 5 шариков в порции. Определить, можно ли купить K шариков мороженного.
Входные данные:
Во входном потоке в первой строке задано натуральное число К (K <= 1000)<br>
Выходные данные:
Вывести YES или NO.

Пример входного файла (input.txt):
2


Информатика (15 баллов) | 75 просмотров
0

нам крупно повезло, что задача сводится к отфильтровке чисел 1 2 4 7так как в условии задано 3 и 5 шарикова если бы их было не 3 и 5 а например 11 и 13 или не дай бог еще большиетогда массив чисел 1 2 4 7 значительно вырос бывысмеянное Вами решение в лоб легко справится с поставленной задачейу программистов ведь принято сводить задачу к ранее решенной

Дано ответов: 2
0 голосов
Правильный ответ

1. Решение для сомневающихся и привыкших писать программы безмозгло "в лоб"

var
  k, p, q: integer;
  flag: boolean;
  f:Text

begin
  Assign(f,'input.txt');
  Reset(f);
  read(f,k);
  Close(f);
  case k of
    1, 2, 4, 7: writeln('NO');
    3, 5: writeln('YES');
  else
    q := k mod 5;
    if (q = 0) or (k = 3) then writeln('YES')
    else
    begin
      q := (k div 5);
      flag := false;
      while (not flag) and (q > 0) do
      begin
        p := k - 5 * q;
        if p mod 3 = 0 then
        begin
          writeln('YES');
          flag := true
        end;
        q := q - 1
      end;
      if (not flag) then writeln('NO')
    end
  end
end.

2. Решение в соответствии с алгоритмом, приведенным в комментарии к вопросу.

const
  Kno = [1, 2, 4, 7];

var
  k: integer;
  f:Text

begin
  Assign(f,'input.txt');
  Reset(f);
  read(f,k);
  Close(f);
  if k in Kno then writeln('NO')
  else writeln('YES')
end.


(142k баллов)
0 голосов

   x: - входное число, целое
   а: - целое
шаг 1.
   x - делится на 5 ?
   если да то ответ YES, выход
шаг 2.
   а: = x-5*целое (х/5)
шаг 3
   a - делится на 3 ?
   если да то ответ YES, выход
шаг 4
   a:=a+5
шаг 5
   a - больше чем х ?
   если да то  ответ NО, выход
переход на шаг 3










(219k баллов)
0

раз вопрос в разделе информатика - значит нужно составить программу или описать алгоритм

0

кривляться над программой не стал, так как не спец, а вот алгоритм можете переписать на любой известный Вам язык