Напишите программу, которая в последовательнсти целых чисел определяет количество нечетных чисел, кратных 3. программа получает на выход целые числа, количество введенных чисел неизвестно, последовательность чисел заканчивается числом 0 (0-признак окончания ввода, не входит в последовательность). количество чисел не превышает 1000. введеные числа по модулю не превышают 30 000. программа должна вывести два числа: длину последовательности (завершающий 0 не учитывается) и количество нечетных чисел, кратных 3. )
212
414
Ответы на вопрос:
Из условия нам известно, что ввод завершается числом ноль. информация о количестве чисел требуется только если их запоминать в массиве, но у нас однопроходный алгоритм, массив не нужен, поэтому про "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
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.
Pascal 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 var a,b,c,s: real; begin repeat write ('введите длину гипотенузы c='); readln(c); write ('введите длину катета a='); readln(a); write ('введите длину площади s='); readln(s); if (c> b) and (c> 0) and (b> 0) then begin a: =sqrt(sqr(c)-sqr(b)); s: =(1/2)*b*c; write end.
Популярно: Информатика
-
Bbob13.02.2022 20:34
-
Inna240405.07.2020 23:18
-
bog201713.11.2022 23:48
-
daryanesterchuk24.09.2020 16:32
-
12345653210.11.2021 11:08
-
StrawberryCake18.09.2020 17:53
-
dias205008.07.2022 15:05
-
Masha665527.08.2022 02:49
-
ibrohim077527.05.2021 09:53
-
Алиса62320.06.2022 06:36