В заданной последовательности целых чисел найти через процедуры максимально длинную подпоследовательность - C#

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

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

В заданной последовательности целых чисел найти с помощью процедуры максимально длинную подпоследовательность чисел такую, что каждый последующий элемент подпоследовательности делился нацело на предыдущий.

Решение задачи: «В заданной последовательности целых чисел найти через процедуры максимально длинную подпоследовательность»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
 
class Program
{
    static List<int> list;
    static void Main()
    {
        Random r = new Random();
        list = Enumerable.Range(0, 10).Select(n => r.Next(1, 10)).ToList();
        
        foreach (int i in list)
            Console.Write(i + " ");
        Console.WriteLine();
 
        foreach(int i in Procedure())
            Console.Write(i + " ");
        Console.ReadKey();
    }
 
    static List<int> Procedure() // т.е. метод
    {
        int max = 0, index = 1;
        List<int> longest = new List<int>();
        while (index < list.Count - 1)
        {
            List<int> current = new List<int>();
            for (int i = index; i < list.Count; i++)
            {
                if (list[i] % list[i - 1] == 0)
                    current.Add(list[i]);
                else
                {
                    index = i + 1;
                    if (max < current.Count)
                    {
                        max = current.Count;
                        longest = current;
                    }
                    break;
                }
            }
        }
        return longest;
    }
}

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


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

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

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