Форум программистов, компьютерный форум CyberForum.ru

Определить, есть ли в массиве равные по абсолютной величине числа... - C++

Восстановить пароль Регистрация
 
azot
0 / 0 / 0
Регистрация: 13.10.2009
Сообщений: 24
25.01.2010, 23:10     Определить, есть ли в массиве равные по абсолютной величине числа... #1
Определить, есть ли в массиве равные по абсолютной величине числа. Вычислить количество чисел, имеющих чередование четных и нечетных цифр?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2010, 23:10     Определить, есть ли в массиве равные по абсолютной величине числа...
Посмотрите здесь:

C++ определить номер наименьшего по абсолютной величине элемента массива
Написать функцию нахождения в массиве целых чисел наименьшего по абсолютной величине числа. C++
Написать функцию нахождения в массиве целых чисел наименьшего по абсолютной величине числа. C++
В массиве найти наибольший общий делитель его второго максимального и минимального по абсолютной величине элементов C++
C++ Определить в двумерном массиве числа, равные наименьшим значениям элементов строк
Определить номер числа по абсолютной величине, самого близкого к своему номеру. В С++ C++
C++ Составить программу, которая уменьшает первое введенное число в два раза, если оно больше второго введенного числа по абсолютной величине. Числа вводя
C++ Определить, есть ли среди отрицательных элементов элементы с максимальным значением по абсолютной величине

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
insideone
Модератор
Автор FAQ
 Аватар для insideone
3623 / 901 / 48
Регистрация: 10.01.2010
Сообщений: 2,429
25.01.2010, 23:56     Определить, есть ли в массиве равные по абсолютной величине числа... #2
Насчет "Определить, есть ли в массиве равные по абсолютной величине числа"
C++
1
2
3
4
5
6
7
8
9
10
int AbsSuccCount = 0;
for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++)
if ( i != j ) // не будем сравнивать число с собой же
if ( abs(A[i]) == abs(A[j]) ) AbsSuccCount++;
 
if ( AbsSuccCount == 0 )
// не было найдено ни одной пары равных 
else
// были найдены
Начет "Вычислить количество чисел, имеющих чередование четных и нечетных цифр"
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    int A[N] = {1234, 1123, 2343, 55655, 343458};
    int Count = 0, CurDig = 0, NewDig = 0; bool bNotIn = false;
    for (int i = 0; i < N; i++)
    {
        int CurInt = A[i]; bNotIn = false;
        CurDig = (CurInt % 10) & 1; CurInt /= 10;
        while ( CurInt )
        {
            NewDig = (CurInt % 10) & 1; CurInt /= 10;
            if ( abs(NewDig-CurDig) == 0 )
            {
                bNotIn = true;
                break;
            }
            CurDig = NewDig;
        }
        if ( !bNotIn ) Count++;
    }
Rififi
 Аватар для Rififi
2330 / 1045 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
26.01.2010, 00:28     Определить, есть ли в массиве равные по абсолютной величине числа... #3
azot,

Определить, есть ли в массиве равные по абсолютной величине числа.

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
#include <algorithm>
#include <map>
 
template <typename T, const size_t N>
bool X(const T (&arr)[N])
{
   typedef std::map<T, bool> Z;
   Z z;
 
   for(size_t i=0; i<N; i++)
   {
      const T t = abs(arr[i]);
      if (z.find(t) != z.end())
         return true;
      z.insert(typename Z::value_type(t, true));
   }
   return false;
}
 
int main()
{
        setlocale(LC_ALL, "");
 
        int arr1[] = { 1,2,3,4,5,-3 };
        int arr2[] = { 1,2,3,4,5,3 };
        int arr3[] = { 1,2,3,4,5,6 };
        
        std::cout << "arr1: " << std::boolalpha << X(arr1) << std::endl;
        std::cout << "arr2: " << std::boolalpha << X(arr2) << std::endl;
        std::cout << "arr3: " << std::boolalpha << X(arr3) << std::endl;
 
        return 0;
}
Проверка: http://codepad.org/VK0VmXVq
Yandex
Объявления
26.01.2010, 00:28     Определить, есть ли в массиве равные по абсолютной величине числа...
Ответ Создать тему
Опции темы

Текущее время: 00:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru