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