Umut D.

Umut D.

Powered by Jekyll & Github

  • Coding-Challenges

  • Soru

    Programcıya, bir sıra numarası (girilenSira) veriliyor ve sıranın, hangi Fibonacci Sayısına denk geldiğini bulan program yazması isteniyor.

    Fibonacci Sayı dizisi, kendinden önceki iki ardışık sayının toplamının kendisinden sonraki sayıya eşit olmasıdır. Yani her sayı kendisinden önce gelen iki sayının toplamıdır.

    • Fibo Sıra: 1, 2, 3, 4, 5, 6, 7, 8, 9
    • Fibonacci: 0, 1, 1, 2, 3, 5, 8, 13, 21

    Örnek

    Girdi Çıktı
    girilenSira: 8 Sonuç: 13
    girilenSira: 4 Sonuç: 2

    Çözüm - C#

    using System;
    
    class Program
    {
        static void Main()
        {
            int girilenSira = 8;
            int fibonacciSayisi = 0, oncekiSayi = 0, sonrakiSayi = 1;
    
            // Fibo Sıra: 1, 2, 3, 4, 5, 6, 7,  8,  9
            // Fibonacci: 0, 1, 1, 2, 3, 5, 8, 13, 21
            // Sıranın tam oturması için (Fibonacci 0 ile başlıyor) girilen sıradan bir düş
            girilenSira--;
    
            if (girilenSira == 1)
                Console.WriteLine("Sonuç: " + 1);
    
            // Girilen sıra 2 veya daha büyük ise;
            for (int sira = 2; sira <= girilenSira; sira++)
            {
                // Önceki ve sonraki sayıları topla. Sonraki sayıya geçince önceki ve sonraki sayı değerlerini yenile
                fibonacciSayisi = oncekiSayi + sonrakiSayi;
                oncekiSayi = sonrakiSayi;
                sonrakiSayi = fibonacciSayisi;
            }
    
            Console.WriteLine("Sonuç: " + fibonacciSayisi);
    
            Console.Read();
        }
    }
    

    Çözüm - Java

    public class Main {
        public static void main(String[] args) {
            int girilenSira = 8;
            int fibonacciSayisi = 0, oncekiSayi = 0, sonrakiSayi = 1;
    
            // Fibonacci: 0, 1, 1, 2, 3, 5, 8, 13, 21
            // Fibo Sıra: 1, 2, 3, 4, 5, 6, 7,  8,  9
            // Sıranın tam oturması için (Fibonacci 0 ile başlıyor) girilen sıradan bir düş
            girilenSira--;
    
            if (girilenSira == 1)
                System.out.println("Sonuç: " + 1);
    
            // Girilen sıra 2 veya daha büyük ise;
            for (int sira = 2; sira <= girilenSira; sira++) 
            {
                // Önceki ve sonraki sayıları topla. Sonraki sayıya geçince önceki ve sonraki sayı değerlerini yenile
                fibonacciSayisi = oncekiSayi + sonrakiSayi;
                oncekiSayi = sonrakiSayi;
                sonrakiSayi = fibonacciSayisi;
            }
    
            System.out.println("Sonuç: " + fibonacciSayisi);
        }
    }