elvirravel
09.05.2022 13:04

Кто может устно объяснить уже решенные задачи на С++.
Нужен человек который хоть немного разбирается в С++.
Нужно написать, что делает каждый абзац в данной программе.

(1)Условие:
Назовем два массива похожими, если они состоят из одних и тех же элементов
(без учета кратности). По двум данным массивам выясните, похожие они или нет.
Решение:
#include
#include
#include

using namespace std;

int main()
{
int n, k, s;
cin >> n;
map f;
map sn;
map::iterator it;
for(int i = 0; i < n; i++){
cin >> s;
if(f.count(s) >= 1) f[s]++;
else f.insert(pair (s, i));
}

cin >> k;
for(int i = 0; i < k; i++)
{
cin >> s;
if(sn.count(s) >= 1) sn[s]++;
else sn.insert(pair (s, i));
}

if(f.size() != sn.size()){
cout << "NO";
return 0;
}
for(it = f.begin(); it != f.end(); it++)
if(sn.find(it->first) == sn.end()){
cout << "NO";
return 0;
}
cout << "YES";
return 0;
}

(2)Условие:
Давид и Вероника собирали камни, они набрали много камней и сложили их
в две большие кучи. Теперь они хотят определить, сколько они собрали камней, таких, что такой же размер камней есть и у Вероники, и у Давида и сложить из них третью кучу. Размеры камней могут повторяться, все камни одинакового размера из обоих куч надо складывать в третью кучу им сложить третью кучу.

Решение:
#include
#include

using namespace std;

int main()
{
int n, k, s;
cin >> n >> k;
map As;
map Aj;
map::iterator itas, itaj;
for(int i = 0; i < n; i++){
cin >> s;
if(As.count(s) >= 1) As[s]++;
else As.insert(pair (s, 1));
}
for(int i = 0; i < k; i++){
cin >> s;
if(Aj.count(s) >= 1) Aj[s]++;
else Aj.insert(pair (s, 1));
}
itaj = Aj.begin();
for(itas = As.begin(); itas != As.end(); itas++)
if(Aj.find(itas->first) != Aj.end()){
itaj = Aj.find(itas->first);
for(int i = 0; i < itas->second + itaj->second; i++)
cout << itas->first << endl;
}
return 0;
}

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
yuhdbfbgg
24.12.2020 07:21
Const
  n = 10;

var
  x: array[1..n] of integer;
  i: integer;
  flag: boolean;

begin
  Randomize;
  Write('Элементы массива: ');
  for i := 1 to n do
  begin
    x[i] := Random(10000);
    Write(x[i]:5)
  end;
  i := 1; flag := false;
  while (i <= n) and (not flag) do
  begin
    flag := (x[i] >= 99) and (x[i] <= 1000);
    if (not flag) then i := i + 1
  end;
  Writeln;
  if flag then Writeln('Найден элемент: ', x[i])
  else Writeln('Искомого числа нет')
end.

Тестовое решение:
Элементы массива:  4136 4921  244 1489 1714 5731 4187 7990 1974  113
Найден элемент: 244

const
  n = 13;

var
  x: array[1..n] of integer;
  i: integer;
  flag: boolean;

begin
  Randomize;
  Write('Элементы массива: ');
  for i := 1 to n do
  begin
    x[i] := Random(101) - 50;
    Write(x[i]:4)
  end;
  i := n;
  flag := false;
  while (i > 0) and (not flag) do
  begin
    flag := (x[i] >= -10) and (x[i] <= 20) and (x[i] mod 3 = 0);
    if (not flag) then i := i - 1
  end;
  Writeln;
  if flag then Writeln('Найден элемент: ', x[i])
  else Writeln('Искомого числа нет')
end.

Тестовое решение:
Элементы массива:   21 -45 -12   9 -36  42 -49 -48  37  48 -43  26 -34
Найден элемент: 9

var
  n: longint;
  s: string;
  k, er: integer;

begin
  Write('Введите натуральное число-> '); Readln(n);
  Str(n, s);
  Val(s[1], k, er);
  if (k mod 2 = 0) then Writeln('Первая цифра числа четная')
  else Writeln('Первая цифра числа нечетная')
end.

Тестовое решение:
Введите натуральное число-> 36434523
Первая цифра числа нечетная

function NOD(a, b: integer): integer;
begin
  while a <> b do
    if a > b then a := a - b
    else b := b - a;
  NOD := a
end;

var
  a, b, c: integer;

begin
  Write('Введите через пробел три целых числа: '); Readln(a, b, c);
  Writeln('НОД(a,b)+НОД(b,c)=', NOD(a, b) + NOD(b, c))
end.

Тестовое решение:
Введите через пробел три целых числа: 2048 512 4262
НОД(a,b)+НОД(b,c)=514
0,0(0 оценок)
Ответ:
IrishkaKoteika2689
10.07.2022 06:05
Var
  s, s_rej, s2: string;
  i: integer;

begin
  Write('Введите текст: '); Readln(s);
  Write('Введите исключаемые символы ПОДРЯД: '); Readln(s_rej);
  s2 := '';
  for i := 1 to Length(s) do
    if Pos(s[i], s_Rej) = 0 then s2 := s2 + s[i];
  Writeln('Обработанный текст: ', s2)
end.

Тестовое решение:
Введите текст: Пример текста, из которого будут исключены гласные буквы
Введите исключаемые символы ПОДРЯД: аеёиоуэюя
Обработанный текст: Прмр ткст, з ктрг бдт склчны глсны бквы

var
  s, s2: string;
  i: integer;
  c:array of string;

begin
  Write('Введите текст: '); Readln(s);
  s:=Trim(s);
  c:=s.Split('-');
  s2:=Trim(c[0]);
  for i:=1 to Length(c)-1 do
    s2:=s2+' - '+Trim(c[i]);
  Writeln('Обработанный текст: ', s2)
end.

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