Помогите по pascal

Ответить
dmrocker
Сообщения: 2
Зарегистрирован: 15 апр 2010, 10:39

Дан неубывающий массив положительных целых чисел a[1]<=a[2]<=...<=a[n] ; найти наименьшее целое положительное число (не равное 1) не представимое в виде суммы нескольких элементов этого массива(каждый элемент массива использован не более одного раза) число действий порядка n.

видел похожую задачку в разделе программирования на С, но в поиске по паскалю такой не нашёл, так что плиииз, помогите решить. Заранее спасибо!
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Что-то мне кажется, что с числом действий порядка N задачу не решить...
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
dmrocker
Сообщения: 2
Зарегистрирован: 15 апр 2010, 10:39

Хыиуду писал(а):Что-то мне кажется, что с числом действий порядка N задачу не решить...

Ну тогда без него, а то уж голову сломал как число это искать.
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

С переводом чисел в двоичную систему знакомы?
1 - взять только первое число, 10 - только второе, 11 - первое и второе, 100 - только третье, 101 - первое и третье и т.д.
Соответственно, для каждого числа A, начиная с i=2, перебираем все числа от последнего проверенного до 2^i-1. Если сумма элементов массива, взятых согласно очередному числу, равна проверяемому элементу массива - переходим к проверке следующего элемента массива. Если очередное число достигло 2^i - значит, проверяемый элемент массива искомый.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Ответить