Umut D.

Umut D.

Powered by Jekyll & Github

  • Coding-Challenges

  • Soru

    Programcıya artan veya azalan değerleri olan bir sayı dizisi (dizi) veriliyor. Programcıdansa sayı dizinde yer alan rakamların ileri ve geri arka arkaya, yani sıralı bir şekilde gidip gitmediğini, belirleyen bir yapı oluşması bekleniyor.

    Örnek

    Girdi Çıktı
    (dizi): 5, 6, 7 Sonuç: Evet, arka arkaya.
    (dizi): 11, 10, 9, 8, 7 Sonuç: Evet, arka arkaya.
    (dizi): 3, 5, 2 Sonuç: Hayır, arka arkaya değil.

    Çözüm - C#

    using System;
    using System.Linq;
     
    class Program
    {
        static void Main()
        {
            // Girilen dizi
            int[] dizi = new int[] {4, 3, 2};
            int[] yeniDizi = new int[dizi.Length];
            int ilkSayi = dizi[0];
     
            // Girilen dizideki ilk iki sayı arasındaki farkı bul
            // Eğer fark pozitif ise yeniDiziyi oluştur
            if (dizi[1] - dizi[0] > 0)
            {
                for (int i = 0; i < dizi.Length; i++)
                {
                    yeniDizi[i] = ilkSayi + i;
                }
            }
            // Eğer fark negatif ise yeniDiziyi oluştur
            else
            {
                for (int i = 0; i < dizi.Length; i++)
                {
                    yeniDizi[i] = ilkSayi - i;
                }
            }
     
            // Dizinin art arda olup olmadığını kontrol et [Linq sağolsun]
            if (dizi.SequenceEqual(yeniDizi))
                Console.WriteLine("Evet, arka arkaya.");
            else
                Console.WriteLine("Hayır, arka arkaya değil.");
     
            Console.Read();
        }
    }
    

    Çözüm - Java

    import java.util.Arrays;
     
    public class Main {
        public static void main(String[] args) {
            // Girilen dizi
            int[] dizi = new int[] {4,3,2};
            int[] yeniDizi = new int[dizi.length];
            int ilkSayi = dizi[0];
     
            // Girilen dizideki ilk iki sayı arasındaki farkı bul
            // Eğer fark pozitif ise yeniDiziyi oluştur
            if (dizi[1] - dizi[0] > 0)
            {
                for (int i = 0; i < dizi.length; i++)
                {
                    yeniDizi[i] = ilkSayi + i;
                }
            }
            // Eğer fark negatif ise yeniDiziyi oluştur
            else
            {
                for (int i = 0; i < dizi.length; i++)
                {
                    yeniDizi[i] = ilkSayi - i;
                }
            }
     
            // Dizinin art arda olup olmadığını kontrol et
            if (Arrays.equals(dizi, yeniDizi))
                System.out.println("Evet, arka arkaya.");
            else
                System.out.println("Hayır, arka arkaya değil.");
        }
    }