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

Напишите программу, которая в последовательнсти целых чисел определяет количество нечетных чисел, кратных 3. программа получает на выход целые числа, количество введенных чисел неизвестно, последовательность чисел заканчивается числом 0 (0-признак окончания ввода, не входит в последовательность). количество чисел не превышает 1000. введеные числа по модулю не превышают 30 000. программа должна вывести два числа: длину последовательности (завершающий 0 не учитывается) и количество нечетных чисел, кратных 3. )

Показать ответ
Ответ:
fpokryshkin
fpokryshkin
02.10.2020 13:04
Из условия нам известно, что ввод завершается числом ноль. Информация о количестве чисел требуется только если их запоминать в массиве, но у нас однопроходный алгоритм, массив не нужен, поэтому про "1000 чисел" благополучно забываем. Числа целые, и по модулю не превышают 30 000, следовательно им надо отводить двухбайтный тип integer, в в котором диапазон представления чисел [-32 768 ; 32 767].
"Нечетные числа, кратные трем" - это такие, у которых остаток от деления на два ненулевой, а остаток от деления на три нулевой. Поскольку числа целые, то и деление, конечно же, целочисленное.
Длина последовательности n - это просто счетчик количества прохождений цикла за вычетом единицы, потому что последний проход по циклу будет при вводе нуля, а его учитывать не надо. В другом счетчике k мы накапливаем количество чисел, для которых выполнилось рассмотренное выше условие "нечетные числа, кратные трем".

var
  n,k,m: integer;
begin
  Writeln('Вводите целые числа, для окончания введите 0');
  n:=0; k:=0;
  repeat
    Read(m); Inc(n);
    if (m mod 2 <> 0) and (m mod 3 = 0) then Inc(k)
  until m=0;
  Writeln('Введено чисел- ',n-1);
  Writeln('Нечетных, кратных трем- ',k)
end.

Тестовое решение:
Вводите целые числа, для окончания введите 0
-5
12
8
27
-18
14
-33
7
0
Введено чисел- 8
Нечетных, кратных трем- 2
0,0(0 оценок)
Ответ:
Vitalyalol
Vitalyalol
02.10.2020 13:04
Var a:array[1..1000] of integer;
i,j:integer;
begin
repeat
i:=i+1;
read(a[i]);
if (a[i] mod 2<>0) and (a[i] mod 3=0) then j:=j+1;
until (a[i]=0) or (i=1000);
writeln('Kolichestvo chisel - ',i-1);
writeln('Kolichestvo nechetnih chisel kotorie delatsa na 3 - ',j);
writeln;
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота