
Вопрос задан 23.03.2019 в 09:06.
Предмет Информатика.
Спрашивает Белов Егор.
В кафе продается мороженое по 3 или по 5 шариков в порции. Определить, можно ли купить K шариков
мороженного. Входные данные: Во входном потоке в первой строке задано натуральное число К (K <= 1000) Выходные данные: Вывести YES или NO. Пример входного файла (input.txt): 2

Ответы на вопрос

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



Отвечает Ахметов Ахат.
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.
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.


Топ вопросов за вчера в категории Информатика

Информатика 558

Информатика 33

Информатика 74

Информатика 12

Информатика 10

Информатика 33

Информатика 27
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili