На сайте в режиме реального времени публикуются решения контестных задач сервиса Codeforces.
Загружайте свои решения( здесь ) прямо на сайте. Подробнее. Жду ваших решений
 

По разделам

 

Задача Case 11


Локатор ориентирован на одну из сторон света («С» — север, «З» —
запад, «Ю» — юг, «В» — восток) и может принимать три цифровые команды поворота: 1 — поворот налево, −1 — поворот направо, 2 — поворот на
180◦
. Дан символ C — исходная ориентация локатора и целые числа N1
и N2 — две посланные команды. Вывести ориентацию локатора после
выполнения этих команд.

Код (C/C++)

#include <stdio.h>

int main(void)
{
   int n1,n2;
   char c;
   printf("Направление:") ;
   scanf ("%c", &c);
   printf("Команда 1:") ;
   scanf ("%i", &n1);
   printf("Команда 2:") ;
   scanf ("%i", &n2);
 
   switch (c) {
   case 'С':
       switch (n1+n2) {
       case -1:
       case 3:
            c='В';
            break;
       case 1:
            c='З';
            break;
       case -2:
       case 2:
            c='Ю';
            break;
       }
       break;
   case 'В':
       switch (n1+n2) {
       case -1:
       case 3:
            c='Ю';
            break;
       case 1:
            c='С';
            break;
       case -2:
       case 2:
            c='З';
            break;
       }
       break;
   case 'Ю':
       switch (n1+n2) {
       case -1:
       case 3:
            c='З';
            break;
       case 1:
            c='В';
            break;
       case -2:
       case 2:
            c='С';
            break;
       }
       break;
   case 'З':
       switch (n1+n2) {
       case -1:
       case 3:
            c='С';
            break;
       case 1:
            c='Ю';
            break;
       case -2:
       case 2:
            c='В';
            break;
       }
   }
 
   printf("%c\n",c);
   return 0;
}

Код (Python)

import random

d = ['Север', 'Запад', 'Юг', 'Восток']
r = {-1 : "поворот направо", 1 : "поворот налево", 2 : "поворот на 180 градусов"}

try:
    i_bak = i = random.randrange(0,4)
    print("i : ", i)
    C = d[i]
    print("Исходное направление (C) : ", C)
    N1 = random.choice([-1,1,2])
    print("Команда 1 (N1) : ", N1)
    print("Поворот: ", r[N1])
    i = (4+i+N1)%4
    print("i : ", i)
    C = d[i]
    print("Новое направление (C) : ", C)
    N2 = random.choice([-1,1,2])
    print("Команда 2 (N2) : ", N2)
    print("Поворот: ", r[N2])
    i = (4+i+N2)%4
    print("i : ", i)
    C = d[i]
    print("Новое направление (C) : ", C)
    
    i_bak = (4+i_bak+N1+N2)%4
    print("i_bak : ", i_bak)
    C = d[i_bak]
    print("Новое направление (C) : ", C)
    
except KeyError as e:
    print('Ошибка')
									

Код (Pascal)

program Case11;
var
  C:Char;
  N1,N2:Integer;
begin
  Write('Введите текущее напрление перемещения робота: ');
  Readln(C);
  Write('Введите 1 команду: ');
  Readln(N1);
  Write('Введите 2 команду: ');
  Readln(N2);
 
  Case C of
   'N':Case N1+N2 of
         -1,3:C:='E';
         1:C:='W';
         2,-2:C:='S';
       end;
   'E':Case N1+N2 of
         -1,3:C:='S';
         1:C:='N';
         2,-2:C:='W';  
       end;
   'S':Case N1+N2 of
         -1,3:C:='W';
         1:C:='E';
         2,-2:C:='N';
       end;
   'W':Case N1+N2 of
         -1,3:C:='N';
         1:C:='S';
         2,-2:C:='E';
       end;
  end;
  Writeln(C);
end.
									




Case. Абрамян
Case 1 Просмотров: 13
Case 2 Просмотров: 14
Case 3 Просмотров: 16
Case 4 Просмотров: 19
Case 5 Просмотров: 9
Case 6 Просмотров: 12
Case 7 Просмотров: 10
Case 8 Просмотров: 17
Case 9 Просмотров: 8
Case 10 Просмотров: 13
Case 11 Просмотров: 15
Case 12 Просмотров: 14
Case 13 Просмотров: 9
Case 14 Просмотров: 13
Case 15 Просмотров: 14
Case 16 Просмотров: 18
Case 17 Просмотров: 14
Case 18 Просмотров: 15
Case 19 Просмотров: 15
Case 20 Просмотров: 9

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться