Проверка последовательности чисел с интервалом 1 - C#

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

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

У меня есть два похожих алгоритма проверки массива на последовательность в нём чисел с убыванием с интервалом в единицу. Подскажите пожалуйста они идентичны или есть ошибка? Спасибо. Вот весь код:
        static void Test1()
        {
            Random random = new Random();
            int[] slot = new int[5];
            int countNumber1 = 0;
            int countNumber2 = 0;
            int compareNumber = 0;
            bool ladder = false;
 
            do
            {
                ladder = false;
 
                while (!ladder)
                {
                    Console.Clear();
 
                    for (int a = 0; a < slot.Length; ++a)
                    {
                        slot[a] = random.Next(1, 11);
 
                        Console.Write("{0} ", slot[a]);
                    }
 
                    for (int a = 0; a < slot.Length; ++a)
                    {
                        for (int b = a + 1; b < slot.Length; ++b)
                        {
                            if (slot[a] < slot[b])
                            {
                                compareNumber = slot[a];
                                slot[a] = slot[b];
                                slot[b] = compareNumber;
                            }
                        }
                    }
 
                    Console.WriteLine();
                    Console.WriteLine();
 
                    for (int a = 0; a < slot.Length; ++a)
                    {
                        Console.Write("{0} ", slot[a]);
                    }
 
                    Console.WriteLine();
                    Console.WriteLine();
 
                    // Вариант №1
                    
                    for (int a = 0; a < slot.Length; ++a)
                    {
                        for (int b = a + 1; b < slot.Length; ++b)
                        {
                            if (slot[a] > slot[b] && slot[a] - 1 == slot[b])
                            {
                                countNumber1++;
                                break;
                            }
                            else break;
                        }
                        if (countNumber1 == 4) break;
                    }
                    
                    /*
                    // Вариант №2
                    for (int a = 0; a < slot.Length - 1; ++a)
                    {
                        if (slot[a] > slot[a + 1] && slot[a] - 1 == slot[a + 1])
                        {
                            countNumber1++;
                        }
                        if (countNumber1 == 4) break;
                    }
                    */
 
                    if (countNumber1 == 4)
                    {
                        ladder = true;
                        Console.WriteLine("Лесенка!");
                        countNumber1 = 0;
                        continue;
                    }
                    else countNumber1 = 0;
                }
 
            } while (Console.ReadKey().Key == ConsoleKey.Enter);
        }
Только не запускайте оба варианта одновременно!

Решение задачи: «Проверка последовательности чисел с интервалом 1»

textual
Листинг программы
using System;
 
class Program
{
    public static void Main()
    {
        int[] arr = new int[] { 5, 4, 3, 2, 1 };
        int i;
        for (i = 1; i < arr.Length; i++)
        {
            if (arr[i - 1] - 1 != arr[i]) break;
        }
        Console.WriteLine(i == arr.Length ? "Все элементы удовлетворяют условию" : "Не все");
    }
}

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


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

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

8   голосов , оценка 4.375 из 5
Похожие ответы