Выяснить, сколько среди заданных чисел различных - Pascal

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста решить задачую Заранее спасибо! Дано N чисел, требуется выяснить, сколько среди них различных.

Входные данные

В первой строке дано число N – количество чисел. (1 <= N <= 100000) Во второй строке даны через пробел N чисел, каждое не превышает 2*109 по модулю.

Выходные данные

Выведите число, равное количеству различных чисел среди данных.

Примеры

входные данные

5 1 0 1 2 0

выходные данные

3

Решение задачи: «Выяснить, сколько среди заданных чисел различных»

textual
Листинг программы
  1. program task;
  2. const
  3.   MAXN = 150007;
  4. var
  5.   a : array[0 .. MAXN] of longint;
  6.   n, i, ans : longint;
  7.  
  8. procedure qsort(low : longint; high : longint);
  9. var ii, jj, m, t : longint;
  10. begin
  11.   ii := low; jj := high; m := a[Random(jj - ii + 1) + ii];
  12.   repeat
  13.     while (m > a[ii]) do inc(ii);    
  14.     while (a[jj] > m) do dec(jj);
  15.     if (ii <= jj) then begin
  16.       t := a[ii]; a[ii] := a[jj]; a[jj] := t;
  17.       inc(ii); dec(jj);
  18.     end;
  19.   until (ii > jj);
  20.   if (low < jj) then qsort(low, jj);
  21.   if (ii < high) then qsort(ii, high);
  22. end;
  23.  
  24. begin
  25.   Randomize;
  26.  
  27.   readln(n);
  28.   for i := 1 to n do read(a[i]);
  29.   qsort(1, n);
  30.  
  31.   ans := 1;
  32.   for i := 2 to n do
  33.     if (a[i] > a[i - 1]) then inc(ans);
  34.  
  35.   writeln(ans);
  36. end.

Объяснение кода листинга программы

  1. Объявляется массив a типа longint с длиной MAXN
  2. Объявляются переменные n, i и ans типа longint
  3. Создается процедура qsort для сортировки массива методом быстрой сортировки
  4. Генерируется случайное начальное значение для генерации случайных чисел
  5. Считывается число n с клавиатуры
  6. Считываются числа в массив a
  7. Вызывается процедура сортировки qsort для сортировки массива a
  8. Устанавливается значение переменной ans равным 1
  9. В цикле проверяется, сколько чисел в массиве a больше предыдущих и увеличивается значение переменной ans соответственно
  10. Выводится значение переменной ans на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы