Игорь составляет таблицу кодовых слов для передачи сообщений, каждому сообщению соответствует своё кодовое слово. В качестве кодовых слов Игорь использует 4-буквенные слова, в которых есть только буквы A, B, C, D, X, причём буква X появляется ровно 1 раз. Каждая из других допустимых букв может встречаться в кодовом слове любое количество раз или не встречаться совсем. Сколько различных кодовых слов может использовать Игорь?
Вася составляет 3-буквенные слова, в которых есть только буквы К, Р, А, Н, причём буква А используется в каждом слове хотя бы 1 раз. Каждая из других допустимых букв может встречаться в слове любое количество раз или не встречаться совсем. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько существует таких слов, которые может написать Вася?
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1) Строится двоичная запись числа N.
2) К этой записи дописывается справа бит чётности: 0, если в двоичном коде числа N было чётное число единиц, и 1, если нечётное.
3) К полученному результату дописывается ещё один бит чётности.
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R. Укажите минимальное число N, после обработки которого с помощью этого алгоритма получается число, большее, чем 108. В ответе это число запишите в десятичной системе.
26-46. Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может
а) добавить в одну из куч (по своему выбору) один камень или
б) увеличить количество камней в куче в два раза.
Победителем считается игрок, сделавший последний ход, т.е. первым получивший такую позицию, что в обеих кучах всего будет 70 камней или больше.
Задание 1. Для каждой из начальных позиций (9, 29), (11, 28) укажите, кто из игроков имеет выигрышную стратегию.
Задание 2. Для каждой из начальных позиций (10, 28), (12,27) укажите, кто из игроков имеет выигрышную стратегию.
Задание 3. Для начальной позиции (10,27) укажите, кто из игроков имеет выигрышную стратегию. Постройте дерево всех партий, возможных при указанной выигрышной стратегии.
Требовалось написать программу, при выполнении которой с клавиатуры вводится натуральное число, не превосходящее 108, и выводится его первая (старшая) цифра. Ученик написал такую программу:
var n: longint;
begin
read(n);
while n10 do begin
n := n mod 10
end;
write(n);
end.
Последовательно выполните следующее.
Напишите, что выведет эта программа при вводе числа 1984.
Приведите пример числа, при вводе которого программа выдаст верный ответ.
Найдите в программе все ошибки (их может быть одна или несколько).
Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
Обратите внимание: вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.
Требовалось написать программу, которая получает на вход натуральное число N, не превосходящее 109, и выводит число, которое получается из N после удаления всех единиц; порядок остальных цифр при этом не меняется. Например, число 19520125 должно быть преобразовано в число 952025. Число, в котором все цифры – единицы и нули, должно быть преобразовано в 0. Незначащие нули в старших разрядах полученного числа печатать не нужно. Программист торопился и написал программу неправильно.
var N, R, T: longint;
d: integer;
begin
readln(N);
R:=0;
T:=1;
while N0 do begin
d := N mod 10;
if d1 then begin
R := R + d*T;
T := T+1
end;
N := N div 10;
end;
writeln(T);
end.
Последовательно выполните следующее.
Напишите, что выведет эта программа при вводе числа 314.
Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки:
1) Выпишите строку, в которой сделана ошибка.
2) Укажите, как исправить ошибку – приведите правильный вариант
строки.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения.
24-60 На обработку поступает натуральное число, не превышающее 109. Нужно написать программу, которая выводит на экран максимальную цифру числа, кратную 3. Если в числе нет цифр, кратных 3, требуется на экран вывести «NO». Программист написал программу неправильно. Напоминание: 0 делится на любое натуральное число.
var N,digit,maxDigit: longint;
begin
readln(N);
maxDigit := N mod 10;
while N 0 do begin
digit := N mod 10;
if digit mod 3 = 0 then
if digit maxDigit then
maxDigit := digit;
N := N div 10;
end;
if maxDigit = 0 then
writeln('NO')
else
writeln(maxDigit)
end.
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 134.
2. Приведите пример такого трёхзначного числа, что, несмотря на ошибки, программа печатает правильный ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
Даны целые положительные числа M и N. Необходимо определить количество таких целых чисел K, для которых выполняется неравенство M ≤ K3 ≤ N. Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.
var m, n, k, t: integer;
begin
read(m, n);
k := 1;
t := 1;
while k*k*k
if k*k*k m then t := t + 1;
k := k + 1;
end;
writeln(t)
end.
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе M = 10 и N = 100.
2. Приведите пример таких чисел M и N, при вводе которых программа выведет верный ответ. Укажите этот ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько).