4 Nisan 2012 Çarşamba

C# 'da Döngüler, Karar Yapıları ve Algoritma - Yan Yana kaç Tane 1 Var?


Int tipinde ve elemanları sadece 0 ve 1 'dan oluşan bir dizi ele alalım. En fazla kaç adet yanyana bir var bunu bulmaya çalışalım.

            int[] sayilar = { 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1 };
            int max = 0, sayac = 0;
            for (int i = 0; i < sayilar.Length; i++)
            {
                if (sayilar[i] == 1)
                {
                    sayac++;
                }
                else
                {
                    if (sayac > max)
                    {
                        max = sayac;
                    }
                    sayac = 0;
                }
            }
            Console.WriteLine(max);
            Console.ReadKey();

For döngüsü kullanarak dizideki elemanları geziyorum. Eleman 1'e eşit ise sayac'ı 1 arttırıyorum. Bu örnek de bir adet sayaç değişkeni kullanmalıyım. Yanyana olan 1'leri sayar. 0 ile karşılaştığında önceden bulduğu max'dan büyükse, değerini maz'a atar. Değilse kendini sıfırlar ve 1 bulana kadar kendini arttırmaz.

Hiç yorum yok:

Yorum Gönder