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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Рекурсивная функция, число и показатель степени http://www.cyberforum.ru/cpp-beginners/thread602675.html
Ребят помогите пожалуйста не могу понять как решить данную задачу: Напишите программу, которая запрашивает число и показатель степени.Напишите рекурсивную функцию, которая возводит число в степень...
C++ Нахождение минимального кол-ва слов Подскажите как мне найти строку, содержащую наименьшее количество слов, и вывести её на экран монитора? в программе register char *mas = new char; register char *m = mas; register char *uk; ... http://www.cyberforum.ru/cpp-beginners/thread602651.html
C++ Ошибка "error C2011: переопределение типа"
struct Tunit { public : int team; int team_agricultural; POINT location; POINT moveLocation; float max_helf; float current_helf; int ID_cel;
C++ Вычислить сумму элементов матрицы
Как вычислить сумму положительных элементов матрицы А размером N*N, расположенных над главной диагональю?
C++ Перевести с паскаля на с++ http://www.cyberforum.ru/cpp-beginners/thread602611.html
Люди) есть проблемко с курсовой задачкой, вроде как нашел нужную, да вот только она не на том языке что мне нужен =( задачка большая, звучит так: Создать список, содержащий сведения об отправлении...
C++ создание игры, быстродействию Андре Ламот пишет что разницы между игроком и компьютером почти нет(в определённой сфере), всё действие ИИ сводится к посылке сообщений в процедуру обработки оконных обобщений которая одинакова для... подробнее

Показать сообщение отдельно
Xorboo
7 / 7 / 0
Регистрация: 16.12.2010
Сообщений: 23
13.06.2012, 01:55
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.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru