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

Массив: используя операции + или -, из элементов массива получить в итоге значение больше 7 - C++

Восстановить пароль Регистрация
 
Parmaster
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 35
11.06.2012, 13:40     Массив: используя операции + или -, из элементов массива получить в итоге значение больше 7 #1
С клавиатуры задается массив чисел. Нужно, используя операции + или - получить в итоге значение больше 7. Причем предложить все возможные варианты.

Что-то вроде того?

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 <iostream> 
using namespace std;
const int size=10;
int main() 
{   
    setlocale(0,"rus");
    int s,sum,i = 0;
    const int size = 6; 
    int array[size]; 
 
    for ( i = 0; i < size; i++) 
    {
    while(true) 
    { 
        cout << "Введите целое число " << endl; 
        cin >> array[i]; 
        if(cin.good()) 
        { 
            cin.ignore(10, '\n'); 
            break; 
            i++;
        } 
        cin.clear(); 
        cout << "Неправильный ввод " << endl; 
        cin.ignore(10, '\n'); 
    } 
    }
for (i=0; i<size;i++) {
if array[i]>0 then
sum=sum+array[i]
else
sum=sum-array[i]
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2012, 13:40     Массив: используя операции + или -, из элементов массива получить в итоге значение больше 7
Посмотрите здесь:

Составьте программу, которая выводит индексы тех элементов массива (состоящего из В целых чисел), значение которых больше заданного числа А C++
Получить первые n-минимальных элементов массива,используя указатели C++
Сформировать массив, содержащий только те элементы иззначального массива, значение которых больше заданного числа C++
В массиве целых чисел из 20 элементов найти все элементы, значение которых больше среднего арифметического массива C++
C++ Вычислить Среднее арифм. значение элементов массива и число пар элементов которых сосед слева (т.е. индекс которого на 1 меньше) больше по величине
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Parmaster
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 35
12.06.2012, 17:12  [ТС]     Массив: используя операции + или -, из элементов массива получить в итоге значение больше 7 #2
Ау, есть кто?
Xorboo
7 / 7 / 0
Регистрация: 16.12.2010
Сообщений: 23
12.06.2012, 17:24     Массив: используя операции + или -, из элементов массива получить в итоге значение больше 7 #3
Это один вариант, но ведь иногда можно, например, прибавить отрицательное значение, а ответ все равно будет больше 7. Простейший способ предложить все варианты - перебор всех возможных вариантов (2^(size-1) вариантов получится) подстановки + и - и вывод тех, где ответ больше 7.
Parmaster
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 35
13.06.2012, 00:42  [ТС]     Массив: используя операции + или -, из элементов массива получить в итоге значение больше 7 #4
32 раза писать? Что то тут не то -_-
Xorboo
7 / 7 / 0
Регистрация: 16.12.2010
Сообщений: 23
13.06.2012, 01:55     Массив: используя операции + или -, из элементов массива получить в итоге значение больше 7 #5
2^9 = 512, но не все из них могут подойти. Но например к набору из 4 подходят как минимум:
C++
1
2
3
4
5
10 3 2 1
+++
++-
+--
-++
Я предложил бы составить массив из [size-1] элементов, которые принимают значения 0 или 1 (- или + соответственно). Далее заполнял бы его всеми возможными способами (можно, например, рекурсией получить сразу все возможные массивы, можно без нее по одному) и пробегался по нему, складывая или вычитая соответствующие числа.
Чтобы перебрать все значения без рекурсии, можно вспомнить бинарное счисление:
0 0 0 -> 0 0 1 -> 0 1 0 -> 0 1 1 -> 1 0 0 ...
Ну и реализовать его вручную, там довольно просто (прибавлять 1 к последнему разряду и осуществлять перенос на старшие при необходимости и так 2^(size-1) раз, кажется).
Ну или просто прибавлять по 1 к обычной переменной long, а дальше используя битовые операции определять значение бита на i-й позиции. Но соответственно тогда размер size будет ограничен размером long'a.
Parmaster
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 35
14.06.2012, 09:35  [ТС]     Массив: используя операции + или -, из элементов массива получить в итоге значение больше 7 #6
Суть вроде улавливаю, но как реализовать в деле не приложу ума

Добавлено через 17 часов 14 минут
Так дело в том что мне ещё надо вывести на экран, допустим то что >7 вот так
10+3+2+1=16 > 7
...
...
n+n+n+n=n >7
Parmaster
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 35
20.06.2012, 01:57  [ТС]     Массив: используя операции + или -, из элементов массива получить в итоге значение больше 7 #7
Никто не поможет?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2012, 02:11     Массив: используя операции + или -, из элементов массива получить в итоге значение больше 7
Еще ссылки по теме:

C++ Одномерные массивы. Образуйте массив из элементов массива А(М), каждый из которых больше любого элемента массива B (N)
C++ Найти сумму элементов массива, номер которых больше минимального номера элемента, имеющего максимальное значение в массиве
Найти максимальное произведение элементов массива, отстоящих друг от друга на расстоянии больше или равном 8 C++

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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6373 / 4839 / 440
Регистрация: 14.02.2011
Сообщений: 16,039
20.06.2012, 02:11     Массив: используя операции + или -, из элементов массива получить в итоге значение больше 7 #8
Цитата Сообщение от Xorboo Посмотреть сообщение
2^9 = 512, но не все из них могут подойти. Но например к набору из 4 подходят как минимум:
10 3 2 1
+++
++-
+--
-++
-+-
+-+
по теме
тупой перебор
может можно дерево пришпандорить
примерно так упорядочиваем массив и со средины поехали
например у тебя средина 3
если влево пойдем пойдем(10) то только плюс (ибо минус явно меньше)
потом средина средины и т.д

(но это мысли вслух)
по серьезному думать лень

Добавлено через 1 минуту
Цитата Сообщение от ValeryS Посмотреть сообщение
-+-
Цитата Сообщение от ValeryS Посмотреть сообщение
если влево пойдем пойдем(10) то только плюс (ибо минус явно меньше)
сам себя опроверг
Yandex
Объявления
20.06.2012, 02:11     Массив: используя операции + или -, из элементов массива получить в итоге значение больше 7
Ответ Создать тему
Опции темы

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