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

, просто объясните, что происходит в этих строчках В задаче идёт сжатие массива, удаляя числа из интервала [a,b], заменяя их на нули.

Интересует то, что означает "a[i-j] " , "i=n-j" да и всё остальное впринципе.


, просто объясните, что происходит в этих строчках В задаче идёт сжатие массива, удаляя числа из инт

👇
Открыть все ответы
Ответ:
valentinasopina
valentinasopina
10.09.2020

#include <iostream>

#include <cmath>

#include <vector>

using namespace std;

void show_vector(vector <unsigned int> a)

{

   for (unsigned int i = 0; i < a.size() - 1; i++)

       cout << a[i] << " ";

   cout << a.back() << endl;

}

       

bool f_prostoe(unsigned int x)

{

   bool prostoe = true;

   for(unsigned int i = 2; i <= int(sqrt(x)); i++)

   {

       if (x % i == 0)

       {

           prostoe = false;

           break;

       }

   }

   return prostoe;

}

int main()

{

   bool pustoi = true;

   vector <unsigned int> chisla = {0};

   cout << "Введите диапазон, вначале min, затем max." << endl;

   cout << "min = ";

   unsigned int x;

   cin >> x;

   cout  <<"max = ";

   unsigned int y;

   cin >> y;

   for(x = x; x <= y; x++)

   {

       if(f_prostoe(x))

       {

           if (pustoi)

           {

               pustoi = false;

               chisla.pop_back();

           }

           chisla.push_back(x);

       }

   }

   cout << "Простые числа: " << endl;

   show_vector(chisla);

   return 0;

}

Объяснение:

В коде есть костыли, но он работает.

4,4(63 оценок)
Ответ:
tikhonoffpawel
tikhonoffpawel
10.09.2020

--- Python 3.8.3 ---

n = int(input('n: \n'))

counter = 0

for coin1 in range(0, n+ 1):

  for coin2 in range(0, (n // 2) + 1):

      for coin5 in range(0, (n // 5) + 1):

          for coin10 in range(0, (n // 10) + 1):

              if coin1 * 1 + coin2 * 2 + coin5 * 5 + coin10 * 10 == n: counter += 1

print(counter)

для n в пределах 100-200 считает вроде правильно, и достаточно быстро. Что до больших значений n, мне не хватило терпения. Ненормально это, успеть попить чаю в ожидании конца работы программы в 8 строк.

При желании можно использовать как стресс-тест ЦПУ

4,4(63 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ