yaroslavpilip
09.08.2022 19:44

Написать программу на Python

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Andreyvko1
12.11.2022 14:06
Используя boost библиотеку можно было это сделать ещё проще (нужно заканчивать баловаться boost'ом, ато совсем мозги атрофируются :D). Если посидеть и подумать чуть дольше 5 минут, можно и это решение улучшить, но оставлю это Вам)

#include <vector>
#include <iostream>
#include <algorithm>
#include <iterator>
#include <unordered_map>
using namespace std;
unordered_map<int, size_t> umap;

void KeepDuplicates(vector<int>& v)
{
    vector<int> tmp(v);
    for (size_t i = 0; i < tmp.size(); ++i)
    {
        unordered_map<int, size_t>::iterator pos = umap.find(tmp[i]);
        if (pos->second != 2)
        {   
            auto it = remove(v.begin(), v.end(), pos->first);
            v.resize(it - v.begin());
        }
    }
}

int main()
{
    vector<int> arr = { 3, 2, 3, 6, 2, 7, 5, 6, 9, 2 };
    for (const auto& i : arr) ++umap[i];
    KeepDuplicates(arr);
    copy(arr.begin(), arr.end(), ostream_iterator<int>(cout, " "));
}
0,0(0 оценок)
Ответ:
Для удобства прономерую строки:

1) procedure F (n:integer);
2) begin
3) if n > 2 then begin 
4) writeln (n);
5) F (n-3);
6) F (n-4)
7) end
8) end;

-первый вызов- со входным параметром n=10
-в строке 3 проверяется, что n больше двух,
-так как n действительно больше двух, то выполняются три следующие строки № 4,5,6 (а строка 7 -это указатель конца блока, выполняемого при истинности проверки)
-строка 4 печатает значение n, то есть 10
-строка 5 вызывает этот алгоритм вновь, со входным параметром 7
-строка 6 опять вызывает алгоритм, со входным параметром 6
И в каждом вызове будут ещё два вызова, со входными параметрами на три и четыре меньше, чем был
И так далее, каждый вызов будет вновь вызывать алгоритм, и печатать n до тех пор, пока n будет больше двух.

итак, получим ветвление вызовов, и вот значение n в каждом из них:
    10
     7                   6
  4     3            3     2
1 0  0 -1        0 -1

но, не все из этих n будут напечатаны, а только те, которые больше двух. если по порядку, то вот что будет напечатано:
10
7
4
3
6
3

сумма всех этих чисел равна 33

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