Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 3
Регистрация: 30.11.2010
Сообщений: 52
1

Найти два различных элемента массива, сумма которых наиболее близка к числу R

04.12.2013, 21:45. Показов 2317. Ответов 5
Метки нет (Все метки)

Найти два различных элемента массива, сумма которых наиболее близка к числу R. С соседними все понятно, но как перебрать все различные суммы. Допустим массив 1 1 2 5 4 6 5, надо сложить 1+1=2 потом 1+2...1+5 и тд и сравнить все.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.12.2013, 21:45
Ответы с готовыми решениями:

Найти два различных элемента массива, сумма которых наиболее близка к числу R
Дано число R и массив размера N. Найти два различных элемента массива, сумма которых наиболее...

Найти два различных элемента массива, сумма которых наиболее близка к числу R
Дано число R и массив размера N. Найти два различных элемента массива, сумма которых наиболее...

Найти два элемента массива, сумма которых наиболее близка к заданому числу.
Помогите пожалуйста, срочно нужно написать такую программу: задано действительное число R і массив...

Найти два элемента массива, сумма которых наименее близка к данному числу R
1)Дано вещественное число R и массив размера n. Найти два элемента массива, сумма которых наименее...

5
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 61
04.12.2013, 22:24 2
Как на счет найти все сочетания этого массива, поместить их в другой массив вместе с R, сортировать (по возрастанию или убыванию), найти соседние элементы R, по очереди отнять их от R, найти модуль этих двух чисел, которое окажется меньше - то и правильное.
0
3 / 4 / 3
Регистрация: 23.04.2017
Сообщений: 186
03.04.2018, 19:36 3
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
#include <iostream>
using namespace std;
 
int main(){
   const int SIZE = 6;//Размер массива
   int array[SIZE];//Обьявляем массив
   int r;//число R
   int i, j;//Индексы
   int result;//здесь будет результат
   int k, f;//нуилучший результат индексов
   cin >> r;//ввоим число R
   for (i = 0; i < SIZE; i++)cin >> array[i];
   /*Суть в том что мы будем брать результат 2 элементов массива не больше самого элемента и индексы самого большего результата и результат мы запомним*/
   k = 0; f = 1,result=array[0]+array[1];
   for (i = 0; i < SIZE; i++)//Выбираем первый элемент
      for (j = 0; j < SIZE; j++)//Выбираем второй элемент
         if (array[i] != array[j] && (array[i] + array[j])>result&&(array[i]+array[j])<=r){//Если сумма элементов меньше чем R и результат
            result = array[i] + array[j];//запоминаем сумму
            k = i;//запоминаем индекс 1
            f = j;//запоминаем индекс 2
         }
   //вывод в порядке возрастания индексов
   if (k>f)cout << array[k] << " " << array[f] << "\n";//Если индекс i (k) больше чем j (f)
   else cout << array[k] << " " << array[f] << "\n";//Если индекс i (k) меньшее чем j (f)
   system("pause");
   return 0;
}
0
Диссидент
Эксперт C
26353 / 16359 / 3558
Регистрация: 24.12.2010
Сообщений: 36,226
03.04.2018, 20:17 4
warcraft33, учитывая коммутативность сложения, я бы устроил вши циклы так
C++
1
2
3
4
5
for(i=0; i<SIZE - 1; i++) {
  for(j=i+1; j<SIZE; j++) {
    if ((i==0 &&j==1) || ...) // Новая пара
 }
}
0
3 / 4 / 3
Регистрация: 23.04.2017
Сообщений: 186
03.04.2018, 20:28 5
ну так тоже можно)насчет оптимизицаии честно говоря я особо незадумывался)
0
Диссидент
Эксперт C
26353 / 16359 / 3558
Регистрация: 24.12.2010
Сообщений: 36,226
03.04.2018, 20:34 6
Цитата Сообщение от warcraft33 Посмотреть сообщение
насчет оптимизиции честно говоря я особо не задумывался)
Я вас и не сужу строго. Просто, если я вижу возможность некоторого улучшения - почему бы не поделиться с товарищами?
И знаете, поскольку я программист работающий, а не сдающий зачеты, все эти штуки у меня в подкорке сидят
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.04.2018, 20:34

Найти два элемента массива, сумма которых наименее близка к данному числу
Дано вещественное число R и массив размера N. Найти два элемента массива, сумма которых наименее...

Найти два элемента массива, сумма которых наиболее близка к данному числу N
Дан массив целых чисел и целое число N. Найти два элемента массива, сумма которых наиболее близка к...

Найти два соседних элемента массива, сумма которых наиболее близка к числу R
дано число R и массив размера N. найти два соседних элемента массива, сумма которых наиболее близка...

Найти два соседних элемента массива, сумма которых наиболее близка к числу R
Прошу помочь. Дано число R и массив размера N. Найти два соседних элемента массива, сумма которых...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru