В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
kornilov1001
kornilov1001
18.10.2022 18:21 •  Информатика

C++ напишите программу, которая сравнивает количество перестановок при сортировке одного и того же массива разными

Показать ответ
Ответ:
danilgrekov20
danilgrekov20
12.12.2022 20:20
//Видимо, это одна задача, так как "изменения" во второй не указаны
//Pascal ABC.NET v3.1 сборка 1172

Const
 n=20;

Var
 ar:array[1..n] of integer;
 i:integer;
begin
 randomize;
 writeln('First array:');
  for i:=1 to n do
   begin
    ar[i]:=random(10)-3;
    write(ar[i]:4);
    if ar[i]>0 then ar[i]:=ar[i]*2 else ar[i]:=0;
   end;
 writeln;
 writeln('Final array:');
  for i:=1 to n do
   write(ar[i]:4);
end.

Пример работы программы:
First array:   2  -3   5   6  -3  -3   1  -2  -3   1   3  -3   4  -3   1  -1   6   6   2   3
Final array:   4   0  10  12   0   0   2   0   0   2   6   0   8   0   2   0  12  12   4   6
0,0(0 оценок)
Ответ:
kavaii29
kavaii29
24.02.2021 04:15
Ll - long long

dp[i] = dp[i-1] + dp[i-2] + dp[i-5] + dp[i-10];
ll dp[666];
dp[0] = 1;
for(int i=0;i<=64;i++)
{
dp[i+1]+=dp[i];
dp[i+2]+=dp[i];
dp[i+5]+=dp[i];
dp[i+10]+=dp[i];
cout << i << ": " << dp[i] << endl;
}
это если порядок важен, то есть 2 + 1 != 1 + 2, тогда ответ
489475342266653, наверное
а иначе 644

ll ans=0;
for(int i=0;i<10;i++) // 10
{
for(int j=0;j<20;j++) // 5
{
for(int k=0;k<50;k++) // 2
{
ll now = i*10 + j*5 + k*2;
if(now<=64) ans++;
}
}
}
cout << ans;
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота