Tekrarlanan Sayılar

Algoritma dersinin sınavında karşıma çıkan soru ve çözümü.

Soru: Bir dizi içerisinde sıralı olarak sayılar (Bir sayıdan birden fazla olabilir.) verilmektedir. Bu verilen sayılar içerisinde en çok tekrar eden sayıyı bulunuz. (En çok tekrar eden sayı sadece bir tane olabilir.)

Örnek:

{1, 2, 2, 3, 3, 4, 5, 5, 5, 5, 6} Bu dizi içerisindeki en çok tekrar eden sayı 5’tir. 4 kere tekrar etmiştir.

{1, 2, 2, 3, 3 } // Hatalı. Bir den fazla aynı sayıda tekrar olamaz.(En çok tekrar için) Bu durumda ilk en çok tekrar eden sayı 2 kabul edilebilir.

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//www.delimuhendis.com
namespace TekrarlananSayi
{
    class Program
    {
        static void Main(string[] args)
        {
           
            int[] dizi = new int[] { 1, 2, 2, 3, 3, 3, 5, 5, 8, 8, 8, 8, 9, 9, 9, 9, 9, 10};
            int sayi = 0;
            int tekrarSayisi = 0;
            int geciciTekrar = 1;

            for (int i = 0; i < dizi.Length-1; i++)
            {
                if (dizi[i] == dizi[i + 1])
                    geciciTekrar++;
                
                if( i==(dizi.Length-2) || dizi[i] != dizi[i+1])
                {
                    if (geciciTekrar > tekrarSayisi)
                    {
                        tekrarSayisi = geciciTekrar;
                        sayi = dizi[i];
                    }
                   
                    geciciTekrar = 1;
                }
            }

            
            
            Console.WriteLine(sayi + " sayisi en çok tekrarlanmıştır. Ve bu sayı " + tekrarSayisi + "  kez tekrar edilmiştir." );
            Console.ReadLine();
        }
    }
}
Become a patron at Patreon!

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.