Исправить код по задаче о катящемся кубике - C#

Узнай цену своей работы

Формулировка задачи:

Грани кубика помечены числами от 1 до 6. Если кубик лежит на плоскости, то оставляет след в виде квадрата с цифрой равной цифре на основании кубика. Кубик катится по столу, переворачиваясь через ребра. Возьмем некоторую последовательность, состоящую из цифр от 1 до 6. Определить является ли данная последовательность следом кубика. Длина последовательности от 1 до 200 символов, в ней присутствуют только цифры от 1 до 6. Развертка кубика изображена на рисунке. Кубик будет именно таким. Начальные данные: Последовательность цифр от 1 до 6, записанных в виде строки без пробелов. Вывод результата: "YES" или "NO" по условию задачи. Нашими начальными данными по условию будут 6413 а вывод YES. Укажите,в чём я был не прав и почему программа не работает.
Листинг программы
  1. using System;
  2. namespace ConsoleApplication1
  3. {
  4. class Program
  5. {
  6. static void Main(string[] args)
  7. {
  8. int g = 0;
  9. int n = 4;
  10. string s = "1 2 3 4 5 6";
  11. string s2 = Console.ReadLine();
  12. string[] mass = s2.Split();
  13. for (int i = 0; i < n; i++)
  14. {
  15. string a = mass[i];
  16. if (s.Contains(a))
  17. {
  18. g++;
  19. }
  20. }
  21. if (g == 4)
  22. {
  23. Console.WriteLine("YES");
  24. }
  25. }
  26. }
  27. }
чуток изменил цикл,но ничего не изменилось
Листинг программы
  1. for (int i = 0; i < n; i++)
  2. {
  3. string a = mass[i];
  4. bool b = s.Contains(a);
  5. if (b==true)
  6. {
  7. g++;
  8. }
  9. }

Решение задачи: «Исправить код по задаче о катящемся кубике»

textual
Листинг программы
  1. class Program
  2. {
  3.     static void Main()
  4.     {
  5.         string input = Console.ReadLine();
  6.         Console.WriteLine(CanRoll(input) ? "YES" : "NO");
  7.     }
  8.  
  9.     static bool CanRoll(string input)
  10.     {
  11.         if (input.Length == 1)
  12.             return true;
  13.  
  14.         bool[,] adjacency = new bool[6, 6]
  15.         {
  16.             { true, true, true, true, true, false },
  17.             { true, true, true, true, false, true },
  18.             { true, true, true, false, true, true },
  19.             { true, true, false, true, true, true },
  20.             { true, false, true, true, true, true },
  21.             { false, true, true, true, true, true },
  22.         };
  23.  
  24.         for (int i = 1; i < input.Length; i++)
  25.         {
  26.             int a = (int)char.GetNumericValue(input[i - 1]) - 1;
  27.             int b = (int)char.GetNumericValue(input[i]) - 1;
  28.  
  29.             if (!adjacency[a, b])
  30.                 return false;
  31.         }
  32.         return true;
  33.     }
  34. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут