Исправить код по задаче о катящемся кубике - C#
Формулировка задачи:
Грани кубика помечены числами от 1 до 6.
Если кубик лежит на плоскости, то оставляет след в виде квадрата с цифрой равной цифре на основании кубика.
Кубик катится по столу, переворачиваясь через ребра.
Возьмем некоторую последовательность, состоящую из цифр от 1 до 6.
Определить является ли данная последовательность следом кубика.
Длина последовательности от 1 до 200 символов, в ней присутствуют только цифры от 1 до 6.
Развертка кубика изображена на рисунке. Кубик будет именно таким.
Начальные данные: Последовательность цифр от 1 до 6, записанных в виде строки без пробелов.
Вывод результата: "YES" или "NO" по условию задачи.
Нашими начальными данными по условию будут 6413 а вывод YES.
Укажите,в чём я был не прав и почему программа не работает.
Листинг программы
- using System;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- int g = 0;
- int n = 4;
- string s = "1 2 3 4 5 6";
- string s2 = Console.ReadLine();
- string[] mass = s2.Split();
- for (int i = 0; i < n; i++)
- {
- string a = mass[i];
- if (s.Contains(a))
- {
- g++;
- }
- }
- if (g == 4)
- {
- Console.WriteLine("YES");
- }
- }
- }
- }
чуток изменил цикл,но ничего не изменилось
Листинг программы
- for (int i = 0; i < n; i++)
- {
- string a = mass[i];
- bool b = s.Contains(a);
- if (b==true)
- {
- g++;
- }
- }
Решение задачи: «Исправить код по задаче о катящемся кубике»
textual
Листинг программы
- class Program
- {
- static void Main()
- {
- string input = Console.ReadLine();
- Console.WriteLine(CanRoll(input) ? "YES" : "NO");
- }
- static bool CanRoll(string input)
- {
- if (input.Length == 1)
- return true;
- bool[,] adjacency = new bool[6, 6]
- {
- { true, true, true, true, true, false },
- { true, true, true, true, false, true },
- { true, true, true, false, true, true },
- { true, true, false, true, true, true },
- { true, false, true, true, true, true },
- { false, true, true, true, true, true },
- };
- for (int i = 1; i < input.Length; i++)
- {
- int a = (int)char.GetNumericValue(input[i - 1]) - 1;
- int b = (int)char.GetNumericValue(input[i]) - 1;
- if (!adjacency[a, b])
- return false;
- }
- return true;
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д