Правило а) в конец числа (справа) дописывается 1, если число единиц в двоичной записи числа чётно, и 0, если число единиц в двоичной записи числа нечётно. Правило а) приведет к тому, что число единиц станет нечетным в любом случае.
Правило б) к этой записи справа дописывается остаток от деления количества единиц на 2. После правила а) число единиц нечетное, поэтому дописываться всегда будет единица. Это, в свою очередь, означает, что все число будет нечетным и в десятичной системе, а общее число единиц в двоичной записи будет четным.
Число R по условию превышает 31₁₀=11111₂ и должно быть нечетным.
Будем последовательно проверять все нечетные числа, начиная от 100001₂.
100001 может быть результатом работы алгоритма, т.е. число единиц в нем четное и оно завершается единицей.
В самом деле, если N₂=1000, то по правилу а) получаем 10000, а по правилу б) получаем 100001.
Итак, N₂=100001₂=2⁵+2⁰=32+1=33₁₀
ответ: 33
Поделитесь своими знаниями, ответьте на вопрос:
1. Чем отличаются разветвляющиеся алгоритмы от линейных? 2. Как вы думаете, почему не все задачи можно решить с линейных алгоритмов? Приведите примеры таких задач. 3. Как вы думаете, хватит ли линейных алгоритмов и ветвлений для разработки любой программы? 4. Почему нельзя выполнить обмен значений двух переменных в два шага: а:=b; b:=а? 5. Чем различаются условные операторы в полной и неполной формах? Как вы думаете, можно ли обойтись только неполной формой? 6. Какие отношения вы знаете? Как обозначаются отношения «равно» и «не равно»? 7. Что такое сложное условие? 8. Как определяется порядок вычислений в сложном условии? Расскажите об особенностях вычисления логических выражений в языке Паскаль. 9. Зачем нужен оператор выбора? Как можно обойтись без него? 10. Расскажите о различиях в операторах выбора в школьном алгоритмическом языке и в Паскале. 11. Как в операторе выбора записать, что нужно делать, если ни один вариант не подошёл? 12. Как в операторе выбора в языке Паскаль выполнить для какого-то варианта несколько операторов?
1. Линейные алгоритмы выполняются команда за командой, а в разветвляющихся алгоритмах путь программы зависит от условия.
2.если для решения задачи нужно условие, то эту задачу невозможно решить линейным алгоритмом, только разветвляющимся.
3.думаю не хватит, так как только с линейными алгоритмами и разветвлениями можно написать только простейшую программу.
4. При первом присваивании мы должны знать переменную б, а она не известна по условию
5. Операторы различаются функциями и возможностями. Если бы можно было обойтись только операторами неполной формы, то не было бы надобности придумывать операторы полной формы
6. Равно обозначается == при проверки условия, := при присвоении переменной определенного числа, <> при неравности
7. Сложное условие это условие содержащие несколько простых условий, соединённых операторами и/или
8. По приоритету:
1. Операции в скобках;
2. операции НЕ;
3. операции И;
4. операции ИЛИ
9.Оператор выбора необходим в случае, когда использование множества конструкций условий (if, elseif и else) в значительной мере загромождают код. С оператора выбора Case возможно делать выбор из необходимого количества вариантов. Оператор выбора позволяет заменить несколько операторов ветвления
10. Исползуются обычно те которые помещаются в отведённую им память (обычно от 1 до 10 байт разные простые типы в разных языках и на разном железе) Если нужно 10000значное целое обсчитать, то надо ваять свои функции (пытался представить неалгоритмический паскаль и крыша поехала)
11. Else
12.if, elif, else