0 дауыс
237 көрілді
Кез келген сан беріледі сол берілген сан массивтің ішінде нешеуі бар екенін табу керек

1 жауап

0 дауыс
Массивтегі элементтердің санын табу алгоритмі

1. Кеуде:

Инициализация:
Элементтердің санын сақтау үшін count айнымалы мәнін орнатыңыз.
Жиым элементтерін индекстеу үшін i айнымалысын орнатыңыз.
Цикл:
For циклін пайдаланып массив элементтерін айналдырыңыз.
Әрбір массив элементін берілген санмен салыстырыңыз.
Егер элемент берілген санға тең болса, санауды 1-ге көбейтіңіз.
Қорытынды:
Санақ мәнін басып шығарыңыз.
C++ тілінде іске асыру мысалы:

#include <iostream>

using namespace std;

int main() {
  // Ввод массива
  int n;
  cout << "Введите количество элементов массива: ";
  cin >> n;

  int arr[n];
  for (int i = 0; i < n; i++) {
    cout << "Введите " << i + 1 << "-й элемент: ";
    cin >> arr[i];
  }

  // Ввод искомого числа
  int x;
  cout << "Введите искомое число: ";
  cin >> x;

  // Подсчет количества элементов
  int count = 0;
  for (int i = 0; i < n; i++) {
    if (arr[i] == x) {
      count++;
    }
  }

  // Вывод результата
  cout << "Количество элементов, равных " << x << ": " << count << endl;

  return 0;
}

2. Екілік іздеу:

Сұрыптау:
Жиымды өсу ретімен сұрыптаңыз.
Іздеу:
Сұрыпталған массивтен берілген санды табу үшін екілік іздеу алгоритмін пайдаланыңыз.
Нөмірі табылса,
оның массивтегі бірінші және соңғы көрінісін табыңыз.
осыған тең элементтер саны соңғы және бірінші пайда болу + 1 индекстерінің айырмасына тең болады.
Қорытынды:
Табылған элементтердің санын басып шығарыңыз.
C++ тілінде іске асыру мысалы:

#include <iostream>
#include <algorithm>

using namespace std;

int main() {
  // Ввод массива
  int n;
  cout << "Введите количество элементов массива: ";
  cin >> n;

  int arr[n];
  for (int i = 0; i < n; i++) {
    cout << "Введите " << i + 1 << "-й элемент: ";
    cin >> arr[i];
  }

  // Сортировка массива
  sort(arr, arr + n);

  // Ввод искомого числа
  int x;
  cout << "Введите искомое число: ";
  cin >> x;

  // Бинарный поиск
  int left = 0, right = n - 1;
  int first_occurrence = -1, last_occurrence = -1;

  while (left <= right) {
    int mid = (left + right) / 2;

    if (arr[mid] == x) {
      first_occurrence = mid;
      right = mid - 1;
    } else if (arr[mid] < x) {
      left = mid + 1;
    } else {
      right = mid - 1;
    }
  }

  left = 0, right = n - 1;
  while (left <= right) {
    int mid = (left + right) / 2;

    if (arr[mid] == x) {
      last_occurrence = mid;
      left = mid + 1;
    } else if (arr[mid] < x) {
      left = mid + 1;
    } else {
      right = mid - 1;
    }
  }

  // Вывод результата
  if (first_occurrence == -1) {
    cout << "Число " << x << " не найдено." << endl;
  } else {
    int count = last_occurrence - first_occurrence + 1;
    cout << "Количество элементов, равных " << x << ": " << count << endl;
  }

  return 0;
}
...