Алгоритм без обратной связи имеет линейную структуру .
Есть такие массивы (НО ОНИ ЕСТЬ ТОЛЬКО В PASCAL ABC NET), которые называются <em><u>д</u></em><em><u>и</u></em><em><u>н</u></em><em><u>а</u></em><em><u>м</u></em><em><u>и</u></em><em><u>ч</u></em><em><u>е</u></em><em><u>с</u></em><em><u>к</u></em><em><u>и</u></em><em><u>е</u></em>. Это такие массивы, длину которых ты назначаешь сам в теле программы. Здесь тебе нужно использовать именно их, так как ты заранее не знаешь, сколько будет положительных компонентов.
<h3>Пример объявления динамического массива:</h3>
<em>v</em><em>a</em><em>r</em><em> </em><em>a</em><em>:</em><em> </em><em>a</em><em>r</em><em>r</em><em>a</em><em>y</em><em> </em><em>o</em><em>f</em><em> </em><em>i</em><em>n</em><em>t</em><em>e</em><em>g</em><em>e</em><em>r</em><em>;</em><em> </em><em>/</em><em>/</em><em>в</em><em>о</em><em>т</em><em> </em><em>э</em><em>т</em><em>о</em><em> </em><em>д</em><em>о</em><em> </em><em>b</em><em>e</em><em>g</em><em>i</em><em>n</em>
<em>S</em><em>e</em><em>t</em><em>L</em><em>e</em><em>n</em><em>g</em><em>t</em><em>h</em><em>(</em><em>a</em><em>,</em><em> </em><em>b</em><em>)</em><em>;</em><em> </em><em>/</em><em>/</em><em>п</em><em>о</em><em>с</em><em>л</em><em>е</em><em> </em><em>b</em><em>e</em><em>g</em><em>i</em><em>n</em><em>,</em><em> </em><em>г</em><em>д</em><em>е</em><em> </em><em>b</em><em> </em><em>-</em><em> </em><em>количество элементов массива</em>
Далее работаешь как с обычным массивом.
Var
i:integer;
begin
for i=1 to 20 do
write(i:3);
end.
(i:3 - вывод i на 3 позициях( т. к. если выводить подряд, то все будет без пробелов))
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, f=0;
scanf ("%d", &n);
int a[n];
srand (time(NULL));
for (int i = 0; i < n; i++ )
{
a[i] = rand() % 20 -10;
printf ("%4d ", a[i]);
}
printf("\n");
for (int i = 0; i < n; i++ )
if (a[i]==0) f++;
if (f>0) printf("YES");
else printf("NO");
return 0;
}
Пример:
10
<span> -1 -4 0 1 2 5 -7 -8 5 6
YES</span>
(42-34)/0.1 = 80.
2^6=64 - 6 бит мало,
берем 2^7=128 - 7 бит.