Из условия нам известно, что ввод завершается числом ноль. Информация о количестве чисел требуется только если их запоминать в массиве, но у нас однопроходный алгоритм, массив не нужен, поэтому про "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
"Нечетные числа, кратные трем" - это такие, у которых остаток от деления на два ненулевой, а остаток от деления на три нулевой. Поскольку числа целые, то и деление, конечно же, целочисленное.
Длина последовательности 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
/Ребус
#include<conio.h>
#include<iostream.h>
void main()
{ *int i,j,r;
* long int buk,slo,a[8];
* clrscr();
* for(a[0]=1; a[0]<=3; a[0]++)
* *for(a[1]=0; a[1]<=9; a[1]++)
* * for(a[2]=0; a[2]<=9; a[2]++)
* * *for(a[3]=0; a[3]<=9; a[3]++)
* * * for(a[4]=0; a[4]<=9; a[4]++)
for(a[5]=1; a[5]<=9; a[5]++)
for(a[6]=0; a[6]<=9; a[6]++)
*for(a[7]=0; a[7]<=9; a[7]++)
* * { *buk=a[0]*10000+a[1]*1000+a[2]*100+a[3]*10+a[4];
slo=a[5]*10000+a[6]*1000+a[7]*100+a[3]*10+a[7];
* *if(buk*3==slo)
* *{ r=0; * * * * * * * * * //Проверка того, что
* * *for(i=0; i<8; i++) * * //разным буквам соответствуют
for(j=i+1; j<8; j++) *//разные цифры
*if(a[i]==a[j]) r++;
*if(r==0)cout<<buk<<" + "
* * <<buk<<" + "
* * <<buk<<" = "
* * <<slo<<endl;
* *}
* * *}
getch();