Loading...
BorislavShekerdzhiyski avatar BorislavShekerdzhiyski 2 Точки

Programming Fundamentals/Methods and Debugging - Excercises/ 05. Fibonacci Numbers-Help

Здравейте колеги,

Тъй като имам проблем със създаването на метод, който да решава тази задача, бих се радвал ако някой ми даде примерен код за да видя логиката и синтаксиса. :)

Предварително Благодаря!

Ето и задачата:

Define a method Fib(n) that calculates the nth Fibonacci number. Examples:

n

Fib(n)

0

1

1

1

2

2

3

3

4

5

5

8

6

13

11

144

25

121393

Тагове:
0
Programming Fundamentals
martinski avatar martinski 66 Точки
using System;

class Program
{
    public static int Fibonacci(int n)
    {
        int a = 0;
        int b = 1;
       
        for (int i = 0; i <= n; i++)
        {
            int temp = a;
            a = b;
            b = temp + b;
        }
        return a;
    }

    static void Main()
    {
        int n = int.Parse(Console.ReadLine());

        Console.WriteLine(Fibonacci(n));

    }
}

 

0
13/12/2016 12:56:42
BorislavShekerdzhiyski avatar BorislavShekerdzhiyski 2 Точки

Благодаря ти,

Но и това решение не минава в джъдж.И другото което  несхващам къде е разминаването, тъй като при това решение,което  ми даде ти, при вход 3 например дава 2, а в заданието трябва да е 3.

Незнам дали аз неразбирам условието или условието е грешно. Написах код като използвах тази ф-ла за смятане на фибоначи ({\displaystyle F_{n}=F_{n-1}+F_{n-2},}) във for цикъл от n до 0 и намалява и пак нещо нестава, за едни тестове е ок за други се разминава с много.

Съжалявам за това обяснение, просто се изнервих и изтрих кода. :)

0
martinski avatar martinski 66 Точки

Просто ти написах примерен код:)Не съм се съобразявал с условито :)Редактирах кода и вече дава верени резултати.Пропуснал съм =  в цикъла.И проверих в Джъдж - минава100/100.

int i = 0; i <=n; i++
0
13/12/2016 12:57:53
Stradjazz avatar Stradjazz 30 Точки

{
            int n = int.Parse(Console.ReadLine());
            int fibNumber = Fibonacci(n);
            Console.WriteLine(fibNumber);
        }
        public static int Fibonacci(int n)
        {
            int fibN = 1;
            int fib1 = 0;
            int fib2 = 1;
            for (int i = 0; i < n; i++)
            {
                fibN = fib1 + fib2;
                fib1 = fib2;
                fib2 = fibN;
            }
            return fibN;
        }

0
Stradjazz avatar Stradjazz 30 Точки

Ако си погледнеш формулата и я сравниш със зададената таблица, ще разбереш зависимостта между двете. мартински ти е дал възможен код за метода, но липсва мейн. Моят код е всъщност с абсолютно същата логика и тя е изцяло въз основа на прилагане формулата, коята си посочил към зададената таблица.

0
ChrisPam avatar ChrisPam 976 Точки
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Fibonacci_Numbers
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            Fib(n);
        }
        static void Fib(int n)
        {
            if (n == 0) Console.WriteLine(1);
            else if (n == 1) Console.WriteLine(1);
            else
            {
                int fib0 = 1;
                int fib1 = 1;
                int fibNext = fib0 + fib1;
                for (int i = 1; i < n - 1; i++)
                {
                    fib0 = fib1;
                    fib1 = fibNext;
                    fibNext = fib0 + fib1;
                }
                Console.WriteLine(fibNext);
            }
        }
    }
}

 

0
Miroslav_Kisov avatar Miroslav_Kisov 60 Точки

https://pastebin.com/PEJ2mFD1

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.