Напечатать к-ую цифру Фибоначчи - C#

Узнай цену своей работы

Формулировка задачи:

Дано натуральное число k, напечатать k-ю цифру последовательности 1123581321 ..., в которой вписаны все подряд числа Фибоначчи.

Решение задачи: «Напечатать к-ую цифру Фибоначчи»

textual
Листинг программы
using System;
using System.Diagnostics;
 
namespace ConsoleApplication13
{
    internal class Program
    {
        private static Int64 Fib(int n)
        {
            return n > 1 ? Fib(n - 1) + Fib(n - 2) : n;
        }
 
        private static Int64 Fibonacci(int n)
        {
            Int64 fib_n_2 = 0, fib_n_1 = 1;
            if (n == 1)
                return 0;
            if (n == 2)
                return 1;
            for (int i = 1; i < n; i++)
            {
                var temp = fib_n_1;
                fib_n_1 += fib_n_2;
                fib_n_2 = temp;
            }
            return fib_n_1;
        }
 
        private static void Main()
        {
            const int iters = 50;
            var sw = new Stopwatch();
            sw.Start();
            Console.WriteLine(Fibonacci(iters));
            long sw1 = sw.ElapsedTicks;
            Console.WriteLine(sw1);
            sw.Restart();
            Console.WriteLine(Fib(iters));
            long sw2 = sw.ElapsedTicks;
            Console.WriteLine(sw2);
            Console.WriteLine("Итеративный метод быстрее в {0} раз", sw2/sw1);
            Console.ReadKey();
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.067 из 5
Похожие ответы