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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Parmaster
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 35
#1

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

11.06.2012, 13:40. Просмотров 431. Ответов 7
Метки нет (Все метки)

С клавиатуры задается массив чисел. Нужно, используя операции + или - получить в итоге значение больше 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++
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; int main() { int N; //количество чисел cout &lt;&lt; &quot;Amount of numbers:...

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

Получить первые n-минимальных элементов массива,используя указатели - C++
Дан массив.Получить первые n-минимальных элементов массива,используя указатели. Как лучше реальзовать? На уровне начинающего человека,...

Вычислить произведение элементов массива S, значение которых не больше заданного негативного числа - C++
Здесь задали на Борланде С++ ну просто нечто (я нуб в этом деле) 1.Вычислить произведение элементов массива S ,значение которых не больше...

Вычислить произведение элементов массива S, значение которых не больше заданного негативного числа - C++
Здесь задали на Борланде С(не С++) ну просто нечто (я нуб в этом деле) 1.Вычислить произведение элементов массива S ,значение которых не...

Сформировать массив, содержащий только те элементы иззначального массива, значение которых больше заданного числа - C++
Задан массив A из N элементов. Сформировать массив B, содержащий только те элементы массива A, значение которых больше заданного числа X....

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
Еще ссылки по теме:

Получить массив, присвоив его k-му элементу значение 1 или 0 в зависимости от упорядоченности k-й строки - C++
Понять не могу , ребят испробовал свой бред , дальше не могу . Помогите пожалуйста :) Задана матрица размером NxM. Получить массив B,...

Определить значение n^3, не используя операции умножения - C++
Определить значение {n}^{3}, не используя операции умножения. Известно что: {1}^{3}=1 {2}^{3}=3+5 {3}^{3}=7+9+11 ...

Найти максимальное произведение элементов массива, отстоящих друг от друга на расстоянии больше или равном 8 - C++
Задача егэ с4 ,нужно решить с минимальной сложность ,задача такова: у нас дан массив , длинной больше 8 , нужно найти произведение...

Сформировать массив Y из тех элементов массива Х, которые больше суммы двух соседних предыдущих - C++
Сформировать массив Y из тех элементов массива Х, которые больше суммы двух соседних предыдущих элементов, то есть X i &gt; X i-1 + X i-2.


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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6550 / 5016 / 463
Регистрация: 14.02.2011
Сообщений: 16,729
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
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru