В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
Profesor245
Profesor245
08.02.2021 15:23 •  Информатика

Программа для робота на большом листе клетчатой бумаги нарисовали систему координат. в точке (0; 0) маленький робот. он может выполнять команды right, left, up, down, смещаясь на единичный отрезок в соответствующем направлении. вася пишет программу для робота, состоящую ровно из 12 команд и приводящую его в точку с координатами (6; 4). ему стало интересно: а сколько всего существует таких программ? ему ответить на этот вопрос. в качестве ответа укажите одно натуральное число — количество таких команд. комментарий. если робот находится в начале координат и выполнил команду right, он окажется в точке (1; 0). если после этого он выполнит команду left, то вернется обратно в точку (0; 0). если теперь он выполнит команду up, то окажется в точке (0; 1), а если затем выполнит команду down, то опять вернется в точку (0; 0). программа робота – это набор команд. программы, отличающиеся перестановкой команд, считаются различными. например, есть 9 различных программ, состоящие ровно из 3 команд, приводящие робота из точки (0; 0) в точку (1; 0): right left right; up down right; down up right; up right down; down right up; right up down; right down up; right right left.

Показать ответ
Ответ:
lesta2
lesta2
07.10.2020 16:40
ответ: 9504 

var steps := 12; // За кол-во ходов
var Xend  := 6; // В точку с координатой X
var Yend  := 4; // ... и Y

var vars := 0; procedure Find(step, X, Y : Integer);

begin 
    if step = 0 then   
        vars += (X = Xend) and (Y = Yend) ? 1 : 0
    else   
        begin     
             Find(step - 1, X + 1, Y    );     
             Find(step - 1, X - 1, Y    );     
             Find(step - 1, X    , Y + 1);     
             Find(step - 1, X    , Y - 1);   
        end;
end; 
begin 
     Find(steps, 0, 0); 
     Print(vars);
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота