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();
        }
    }
}

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.