Umut D.

Umut D.

Powered by Jekyll & Github

  • Coding-Challenges

  • Soru

    Programcıya aynı veya farklı içeren bir dizi (girilenDizi) veriliyor. Programcıdan ise, kendisine verilen bu dizideki tek veya çift sayılardan oluşan diziden farklı olan sayının kaçıncı sırada olduğunu (indeks değeri değil) bulması isteniyor.

    Örneğin; dizideki 5 adet sayıdan 4 tanesi tek, 1 tanesi çift sayıdan oluşuyorsa; dizide bir adet bulunan çift sayının kaçıncı sırada bulunduğunun belirtilmesi.

    Örnek

    Girdi Çıktı
    girilenDizi: 2 4 7 8 10 Sonuç: 3 (Tek olan 7 sayısı, 3. sırada)
    girilenDizi: 1 2 1 1 Sonuç: 2 (Çift olan 2 sayısı, 2. sırada)

    Çözüm - C#

    using System;
    using System.Linq;
     
    class Program
    {
        static void Main()
        {
            string girilenDizi = "2 4 7 8 10";
     
            // Düz metindeki sayıları parçalayarak diziye ekle
            string[] dizi = girilenDizi.Split(' ').ToArray();
     
            int tekSayi = 0, ciftSayi = 0;
            int tekSonuc = 0, ciftSonuc = 0;
     
            // Her bir sayının tek mi, çift mi olduğunu bularak sayaçları arttır
            foreach (var sayi in dizi)
            {
                // Sayı çift ise sayacı arttı ve sıra sayısını hafızaya kaydet
                if (Convert.ToInt32(sayi) % 2 == 0)
                {
                    ciftSayi++;
                    ciftSonuc = Array.IndexOf(dizi, sayi) + 1;
                }
                // Sayı tek ise sayacı arttı ve sıra sayısını hafızaya kaydet
                else
                {
                    tekSayi++;
                    tekSonuc = Array.IndexOf(dizi, sayi) + 1;
                }
            }
     
            // Eğer tek sayıdan bir tane var ise tek sayının sırasını değilse diğerini yaz
            if (tekSayi == 1)
                Console.WriteLine(tekSonuc);
            else
                Console.WriteLine(ciftSonuc);
            
            Console.Read();
        }
    }
    

    Çözüm - Java

    import java.util.Arrays;
     
    public class Main {
     
        public static void main(String[] args) {
            String girilenDizi = "2 4 7 8 10";
     
            // Düz metindeki sayıları parçalayarak diziye ekle
            String[] dizi = girilenDizi.split(" ");
     
            int tekSayi = 0, ciftSayi = 0;
            int tekSonuc = 0, ciftSonuc = 0;
     
            // Her bir sayının tek mi, çift mi olduğunu bularak sayaçları arttır
            for (String sayi : dizi)
            {
                // Sayı çift ise sayacı arttı ve sıra sayısını hafızaya kaydet
                if (Integer.parseInt(sayi) % 2 == 0)
                {
                    ciftSayi++;
                    ciftSonuc = Arrays.asList(dizi).indexOf(sayi) + 1;
                }
                // Sayı tek ise sayacı arttı ve sıra sayısını hafızaya kaydet
                else
                {
                    tekSayi++;
                    tekSonuc = Arrays.asList(dizi).indexOf(sayi) + 1;
                }
            }
     
            // Eğer tek sayıdan bir tane var ise tek sayının sırasını değilse diğerini yaz
            if (tekSayi == 1)
                System.out.println(tekSonuc);
            else
                System.out.println(ciftSonuc);
        }
    }