М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
alena3211
alena3211
24.11.2022 18:57 •  Информатика

решить
Желательно с объяснением


решить Желательно с объяснением

👇
Открыть все ответы
Ответ:
vladkanter
vladkanter
24.11.2022
1. Современное решение

// PascalABC.NET 3.2, сборка 1437 от 03.05.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println;
  var min:=a.Min;
  a.Transform(x->x<0?x*min:x); a.Println
end.

Пример
n= 15
-34 7 0 -48 4 42 35 14 -47 6 -29 43 46 40 -18
1632 7 0 2304 4 42 35 14 2256 6 1392 43 46 40 864

2. Популярное до сих пор в школах решение на TurboPascal 7.01 (1983г.)

uses Crt;
const
  nn=100;
var
  i,n,min:integer;
  a:array[1..nn] of integer;
begin
  ClrScr;
  Randomize;
  Write('n='); Read(n);
  min:=100;
  for i:=1 to n do begin
    a[i]:=Random(101)-50;
    Write(a[i],' ');
    if a[i]<min then min:=a[i]
    end;
  Writeln;
  for i:=1 to n do
    if a[i]<0 then a[i]:=a[i]*min;
  for i:=1 to n do
    Write(a[i],' ');
  Writeln;
  ReadKey
end.
4,7(87 оценок)
Ответ:
Пусть *(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.
4,5(96 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ