Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/64: Рейтинг темы: голосов - 64, средняя оценка - 4.64
9 / 9 / 2
Регистрация: 03.04.2016
Сообщений: 89
1

Наименьшее расстояние между двумя локальными максимумами

05.04.2016, 02:03. Показов 12946. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Определите наименьшее расстояние между двумя локальными максимумами последовательности натуральных чисел, завершающейся числом 0. Если в последовательности нет двух локальных максимумов, выведите число 0.
Начальное и конечное значение при этом локальными максимумами не считаются.
Формат входных данных
Вводится последовательность целых чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит, а служит как признак ее окончания).
Формат выходных данных
Выведите ответ на задачу.
Sample Input 1: 121121210
Sample Output 1: 2
Sample Input 2: 1230
Sample Output 2: 0

Каким образом поменять код, чтобы последовательность вводить?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <vector>
 
int main(int argc, char *argv[])
{
    std::vector<int> arr = {1, 2, 1, 2, 1, 2, 0};
    unsigned int count = 0;
    for (int i = 1; i < arr.size() - 1; i++)
    {
        if (!(arr[i] && arr[i + 1]))
            break;
        if (arr[i] > arr[i - 1] && arr[i] > arr[i + 1])
            count++;
    }
    std::cout << count << std::endl;
    return 0;
}
Добавлено через 6 минут
Вот!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include<iostream>
using namespace std;
int main() {
  int prv, cur, nxt, pos = 0, prv_max = 0, min_len = 0, cur_len;
  int count = 0;
  if (cin>>prv && prv)
  {
    if (cin >> cur && cur)
    {
      if (cin >> nxt)
      {
        pos = 2;
        while (nxt)
        {
          if ((prv < cur) && (cur > nxt))
          {
            if (prv_max != 0 )
            {
              cur_len = pos - prv_max;
              if (min_len == 0)
                min_len = cur_len;
              else
                min_len = min(min_len,cur_len);
            }
            prv_max = pos;
          }
          prv = cur;
          cur = nxt;
          cin >> nxt;
          pos++;
 
        }
      }
    }
  }
  cout<<min_len;
return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.04.2016, 02:03
Ответы с готовыми решениями:

Найти наименьшее расстояние между двумя локальными максимумами заданной последовательности натуральных чисел
Здрасте. Я начинающий, прохожу курс обучения C++. И тут такая задача: Определите наименьшее...

Расстояние между двумя локальными максимумами
Написал программу для поиска минимального расстояния между локальными максимумами, но она почему-то...

Расстояние между двумя локальными минимумами
Задача написать программу по нахождению максимального расстояния между двумя соседними локальными...

Расстояние между локальными минимумами
Максимальное расстояние между локальными минимумами. (последовательность) Никак не могу...

1
21 / 21 / 20
Регистрация: 07.02.2016
Сообщений: 87
16.06.2016, 13:54 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
 
using namespace std;
 
int main() {
  // put your code here
  int prv, cur, nxt, pos = 0, prv_max = 0, min_len = 0, cur_len;
  int count = 0;
  if (cin>>prv && prv)
  {
    if (cin >> cur && cur)
    {
      if (cin >> nxt)
      {
        pos = 2;
        while (nxt)
        {
          if ((prv < cur) && (cur > nxt))
          {
            if (prv_max != 0 )
            {
              cur_len = pos - prv_max;
              if (min_len == 0)
                min_len = cur_len;
              else if (cur_len < min_len)
                  min_len = cur_len;
            }
            prv_max = pos;
          }
          prv = cur;
          cur = nxt;
          cin >> nxt;
          pos++;
 
        }
      }
    }
  }
  cout<<min_len;
  return 0;
}
0
16.06.2016, 13:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.06.2016, 13:54
Помогаю со студенческими работами здесь

Расстояние между двумя множествами точек - это расстояние между наиболее близко расположенными точками этих
1. Расстояние между двумя множествами точек - это расстояние между наиболее близко расположенными...

Расстояние между двумя точками
Найти расстояние между двумя точками (x1, y1) и (x2, y2) Формат входных данных Одна...

Расстояние между двумя точками
1. Напишите функцию distance, которая вычисляет расстояние между двумя точками (x1, y1) и (x2, y2)....

Определить наименьшее расстояние между тремя точками
Заданы три точки А(a1,a2,a3), В(b1,b2,b3) и С(c1,c2,c3). Определить, между какими точками...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru