Страница 1 из 1
Помогите по pascal
Добавлено: 15 апр 2010, 10:48
dmrocker
Дан неубывающий массив положительных целых чисел a[1]<=a[2]<=...<=a[n] ; найти наименьшее целое положительное число (не равное 1) не представимое в виде суммы нескольких элементов этого массива(каждый элемент массива использован не более одного раза) число действий порядка n.
видел похожую задачку в разделе программирования на С, но в поиске по паскалю такой не нашёл, так что плиииз, помогите решить. Заранее спасибо!
Re: Помогите по pascal
Добавлено: 16 апр 2010, 16:50
Хыиуду
Что-то мне кажется, что с числом действий порядка N задачу не решить...
Re: Помогите по pascal
Добавлено: 17 апр 2010, 08:15
dmrocker
Хыиуду писал(а):Что-то мне кажется, что с числом действий порядка N задачу не решить...
Ну тогда без него, а то уж голову сломал как число это искать.
Re: Помогите по pascal
Добавлено: 19 апр 2010, 12:44
Хыиуду
С переводом чисел в двоичную систему знакомы?
1 - взять только первое число, 10 - только второе, 11 - первое и второе, 100 - только третье, 101 - первое и третье и т.д.
Соответственно, для каждого числа A, начиная с i=2, перебираем все числа от последнего проверенного до 2^i-1. Если сумма элементов массива, взятых согласно очередному числу, равна проверяемому элементу массива - переходим к проверке следующего элемента массива. Если очередное число достигло 2^i - значит, проверяемый элемент массива искомый.