ZADANIE_6

 avatar
unknown
plain_text
2 years ago
1.9 kB
5
Indexable
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace wyzwanieGrazy6
{
    internal class Program
    {
        static int Najdluzszy(int[] inTab, out int poczatekSegmentu)
        {
            int najdluzszy = 0, x, y, temp = 0;
            int pomocnicza = 0;

            for (int i = 0; i < inTab.Length-1; i++)
            {
                x = inTab[i];
                y = inTab[i + 1];
                if(x == y)
                {
                    temp++;
                }
                else
                {
                    if (temp > najdluzszy)
                    {
                        najdluzszy = temp;
                        pomocnicza = i - temp;
                    }
                    temp = 0;
                }
            }
            poczatekSegmentu = pomocnicza;
            return najdluzszy;
        }

        static void Main(string[] args)
        {
            /* Napisz metodę znajdującą w zadanej tablicy typu int, długość najdłuższego 
             * stałego segmentu, tzn.takiego spójnego fragmentu tablicy w którym wartości są 
             * stałe.Dodaj także parametry typu out przekazujące indeksy początku segmentu. 
             * 
             * Np.dla tablicy { 2, 1, 2, 2, 5, 3, 3, 3, 3, 1, 2, 6}, takim segmentem 
             * jest { 3, 3, 3, 3} – długość 4, indeks początkowy 5.
             */
            int[] tab = new int[] { 0, 1, 2, 2, 2, 5, 3, 3, 3, 5, 5, 5, 5, 5, 5, 5, 5, 9, 45, 1, 1, 1, 1, 1, 0, 
            1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0};
            int najdluzszy = Najdluzszy(tab, out int poczatekSegmentu);
            Console.WriteLine("Poczatek najduzszegi stalego segmentu: " + poczatekSegmentu);
            Console.ReadKey();
        }
    }
}
Editor is loading...