Предмет: Информатика, автор: proger1godik

Конь
Шахматный конь стоит на доске размером 8×8 в ii-той строке и jj-том столбце. Напишите программу, которая определит, сколько ходов он может сделать.



Конь ходит, как показано на рисунке. Из центральной части доски он может сделать 8 ходов, но, если конь находится ближе к краю доски, то количество ходов уменьшится, так как он не может выйти за ее границы.

Формат входных данных
На вход подается два натуральных числа в диапазоне от 1 до 8 — номер клетки, в которой находится конь, по горизонтали и вертикали. Каждое число записано в отдельной строке.

Формат выходных данных
Вывести одно число — количество возможных ходов коня.

Методика проверки
Программа проверяется на 20 тестах. Прохождение каждого теста оценивается в 1 балл. Тест из условия задачи при проверке не используется.


nikniklas: а где картинка "как ходит конь"? )
Unute: если будет ответ, сообщите пожалуйста
nikniklas: Задачка прикольная. На чем можно писать?
kukuskinnikita720: на чем угодно
pythoncplusplusdev: Могу скинуть решение на питоне на 20/20. 50руб. Кому интересно - пишите
isarus2007: слишком дорого
maestropuff: @pythoncplusplusdev скинь вк или телегу
pythoncplusplusdev: Just_me30239
pythoncplusplusdev: телега
pythoncplusplusdev: @maestropuff

Ответы

Автор ответа: allgamestudilp
1

Ответ:

using System;

public class MainClass

{

   public static void Main()

   {

       string X = Console.ReadLine();

       string Y = Console.ReadLine();

       int x = Convert.ToInt32(X);

       int y = Convert.ToInt32(Y);

       if (x > 2 && x < 6)

       {

           if(y>2 && y < 6)

           {

               Console.WriteLine("8");

           }

           else if(y<=1 && y >= 7)

           {

               Console.WriteLine("4");

           }

           else

           {

               Console.WriteLine("6");

           }

       }

       else

       {

           if (y > 2 && y < 6)

           {

               Console.WriteLine("6");

           }

           else if (y <= 1 && y >= 7)

           {

               Console.WriteLine("3");

           }

           else

           {

               Console.WriteLine("4");

           }

       }

   }

}

Объяснение:

на 8.5 баллов язык C#


proger1godik: спасибо, но уже не нужно
allgamestudilp: а можешь дать ответы если знаешь?
nikniklas: с ошибкой мне кажется: первое условие на при х = 6 можно двинуть на 2 вперед.
nikniklas: if (x > 2 && x < 6) => if (x > 2 && x < 7) нужно
nikniklas: на питоне таким алгоритмом сделал i = int(input('По горизонтали (от 1 до 8) '))
j = int(input('По вертикали (от 1 до 8) '))

kolhodov = 0

# проверка по горизонтали
# шаг влево
if i-2>0:
if j-1>0:
kolhodov +=1
if j+1<9:
kolhodov += 1
# шаг вправо
if i+2<9:
if j-1>0:
kolhodov +=1
if j+1<9:
kolhodov += 1

# проверка по вертикали
if j-2>0:
if i-1>0:
kolhodov +=1
if i+1<9:
kolhodov += 1
if j+2<9:
if i-1>0:
kolhodov +=1
if i+1<9:
kolhodov += 1

print('Количество ходов: ',kolhodov)
Автор ответа: nk20077
8

Ответ:

i = int(input()); j = int(input())

if i < 7 and i > 2 and j < 7 and j > 2:

   print("8")

elif j == 1 and i == 1 or j == 1 and i == 8 or j == 8 and i == 1 or j == 8 and i == 8:

   print("2")

elif j == 2 and i == 7 or j == 7 and i == 7 or j == 7 and i == 2 or j == 2 and i == 2:

   print("4")

elif j == 2 and 2 < i < 7 or j == 7 and 2 < i < 7 or i == 2 and 2 < j < 7 or i == 7 and 2 < j < 7:

   print("6")

else:

   print("3")

Объяснение:


samaddodoev: А какой это язык?
Похожие вопросы
Предмет: Английский язык, автор: Киcуля