Проверка последовательности чисел с интервалом 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 ? "Все элементы удовлетворяют условию" : "Не все");
}
}