anilop15
28.08.2022 22:59

Авторлык кукык турлерин жаз​

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
igor99kz
10.09.2021 07:16
                                           НАПИСАНО НА ПАСКАЛЕ!
2)

program fofgogjoj;
const nmax=100;
var
m:array[1..nmax] of integer;    
n,i,j,k:byte;    
a,b,x:integer;
begin
randomize;
repeat Write('Размер массива до ',nmax div 3,' n=');
readln(n);
until n in [1..nmax div 3];
Writeln('Исходный массив:');
for i:=1 to n do  
begin
m[i]:=random(50);  
Write(m[i],' ');  
end;
Writeln;
Writeln;
Write('Введите число для вставки перед a=');
Readln(a);
i:=1;
k:=0;
while i<=n do  
begin
if m[i]>a then    
begin    
n:=n+1;    
k:=1;    
for j:=n downto i+1 do    
m[j]:=m[j-1];    
m[i]:=a;    
i:=i+2;    end  
else i:=i+1;  
end;
if k=0 then
Writeln('Элементов больше ',a,' нет')
else  
begin  
Writeln('Массив после вставки числа ',a,' перед большими ',a);  
for i:=1 to n do  
Write(m[i],' ');  
Writeln;  
Writeln;  
Write('Введите число для вставки после b=');  
Readln(b);  
i:=1;k:=0;  
while i<=n do  
if m[i]<b then    
begin    
n:=n+1;    
k:=1;    
for j:=n downto i+2 do    
m[j]:=m[j-1];    
m[i+1]:=b;    
i:=i+2;    end  
else
i:=i+1;  
if k=0 then
Writeln('Элементов меньше ',b,' нет')  
else    
begin    
Writeln('Массив после вставки числа ',b,' после меньших ',b);    
for i:=1 to n do    
Write(m[i],' ');    
end;  
end;
readln
end.
0,0(0 оценок)
Ответ:
Юлиана95631
16.03.2020 11:58
Пусть *(n) - число звёздочек, которое выведет процедура f(n).

Так как f(n) всегда выводит 1 звёздочку, а если если n > 2 - то вызывает f(n - 1) и f(n - 2), то
*(n) = 1 при n <= 2
*(n) = 1 + *(n - 1) + *(n - 2) при n > 2.

*(1) = *(2) = 1
*(3) = 1 + *(2) + *(1) = 1 + 1 + 1 = 3
*(4) = 1 + *(3) + *(2) = 1 + 3 + 1 = 5
*(5) = 1 + 5 + 3 = 9
*(6) = 1 + 9 + 5 = 15
*(7) = 1 + 15 + 9 = 25
*(8) = 1 + 25 + 15 = 41
*(9) = 1 + 41 + 25 = 67
*(10) = 1 + 67 + 41 = 109
*(11) = 1 + 109 + 67 = 177
*(12) = 1 + 177 + 109 = 287
*(13) = 1 + 287 + 177 = 465
*(14) = 1 + 465 + 287 = 753
*(15) = 1 + 753 + 465 = 1219
*(16) = 1 + 1219 + 753 = 1973 >= 1500
ответ: 16.

Можно было заметить, что *(n) = 2F(n) - 1, где F(n) - число Фибоначчи, или просто выполнять программу для разных n.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота