//прога на Pascal`e
var
a : array[1..10] of shortint;
i, count, sum : byte;
begin
randomize;
write ('Сформированный массив: ');
for i:=1 to 10 do
begin
a[i]:=random (20);
write (a[i], '; ');
inc (sum, a[i]);
end;
writeln ();
write ('Кол-во элементов массива, значение которых превышает СА: ');
for i:=1 to 10 do
if a[i]>(sum/10) then inc (count, 1);
write (count);
end.
Сначала (до i=5) удваиваются элементы массива 1, 2, 3, 4, 5. Получается соответственно 2, 4, 6, 8, 10. Затем, с i=6 удваиваются полученные значения (в обратном порядке). Получается 20, 16, 12, 8, 4.
Можно это всё расписать подробно, по шагам:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
1 шаг цикла:
A [10] := 2*A[1]
1, 2, 3, 4, 5, 6, 7, 8, 9, 2
2 шаг:
A [9] := 2*A[2]
1, 2, 3, 4, 5, 6, 7, 8, 4, 2
3 шаг:
A [8] := 2*A[3]
1, 2, 3, 4, 5, 6, 7, 6, 4, 2
4 шаг:
A [7] := 2*A[4]
1, 2, 3, 4, 5, 6, 8, 6, 4, 2
5 шаг:
A [6] := 2*A[5]
1, 2, 3, 4, 5, 10, 8, 6, 4, 2
6 шаг:
A [5] := 2*A[6]
1, 2, 3, 4, 20, 10, 8, 6, 4, 2
7 шаг:
A [4] := 2*A[7]
1, 2, 3, 16, 20, 10, 8, 6, 4, 2
8 шаг:
A [3] := 2*A[8]
1, 2, 12, 16, 20, 10, 8, 6, 4, 2
9 шаг:
A [2] := 2*A[9]
1, 8, 12, 16, 20, 10, 8, 6, 4, 2
10 шаг:
A [1] := 2*A[10]
4, 8, 12, 16, 20, 10, 8, 6, 4, 2
Ответ: 8
Var
k:longint;
d,n:integer;
begin
Write('Введите натуральное число (1-2147483647): ');
Read(k);
n:=0;
while k>0 do begin
d:=k mod 10;
k:=k div 10;
if (d mod 2)<>0 then Inc(n)
end;
Writeln('Количество нечетных цифр в числе равно ',n)
end.
<em><u>Тестовое решение:</u></em>
Введите натуральное число (1-2147483647): 35632105
Количество нечетных цифр в числе равно 5