Не совсем красиво но без массивов
var cur_num, prev_num: integer;
Begin
Writeln('Введите последовательность закончив ее нулем');
read(prev_num);
repeat
read(cur_num);
if cur_num * prev_num > 0 then
writeln('Пара = ', cur_num * prev_num);
prev_num := cur_num;
until cur_num = 0;
End.
Перевод числа Х из 10-тичной системы в n-ичную осуществляется путем деления с остатком числа Х на n, затем Х1 = Х/n на n и тд (до тех пор, пока Хi больше 0) и записыванием остатков деления в обратном порядке. В нашем случае:
Х = 10, n = 2, \% - операция получения остатка от деления, / - операция получения целой части от деления.
1) 10 \% 2 = 0; 10 / 2 = 5
2) 5 \% 2 = 1; 5 / 2 = 2
3) 2 \% 2 = 0; 2 / 2 = 1
4) 1 \% 2 = 1; 1 / 2 = 0 => конец. Выпишем остатки в обратном порядке (т.е. из шагов 4), 3), 2) и 1)):
10 (в 10-ной) = 1010 (в 2-ной)
Проверка:
1010 (в 2-ной) = 1*2^3 + 0*2^2 + 1*2^2 + 0*2^0 = 8 + 0 + 2 + 0 = 10 (в 10-ной)
Не(х<10) или не(х четное) равнозначно х>=10 или x нечетное
=>
x - нечетное число или >=10
т.о. число, не подходящее ни под одно из этих условий - 8
ответ: 4) 8
<em>// PascalABC.NET 3.2, сборка 1345 от 24.11.2016</em>
<em>// Внимание! Если программа не работает, обновите её версию!</em>
begin
1.To(ReadInteger('н=')).Println
end.
<u>Пример</u>
н= 13
1 2 3 4 5 6 7 8 9 10 11 12 13