Loading...
netherblood avatar netherblood 95 Точки

[Homework] Console Input / Output *Fibonacci Numbers

Ето решение, успях да пресъздада алгоритъма в C#:

 

using System;

namespace FibonacciNumbers
{
    class FibonacciNumbers
    {
        static void Main()
        {
            uint firstMembers = uint.Parse(Console.ReadLine());

            int[] fibonacci = new int[firstMembers];
            fibonacci[0] = 0;
            fibonacci[1] = 1;
            for (int i = 2; i < firstMembers; i++)
            {
                fibonacci[i] = fibonacci[i-2] + fibonacci[i-1];
            }
            for (int i = 0; i < firstMembers; i++)
            {
                Console.Write("{0} ", fibonacci[i]);
            }
        }
    }
}

 

Тагове:
3
Programming Basics 11/09/2015 13:21:36
remote87 avatar remote87 121 Точки

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

Ето и моето решение с един фор цикъл и без масвиви :)

            Console.Write("Enter a number N for range: ");
            BigInteger n = BigInteger.Parse(Console.ReadLine());
            BigInteger firstNum = 0;
            BigInteger secondNum = 1;
            BigInteger thirdNum = 1;
            for (int i = 0; i < n; i++)
            {
                thirdNum = secondNum;
                secondNum = firstNum + secondNum;
                firstNum = thirdNum;
                Console.Write(firstNum + " ");
            }
            Console.ReadLine();

Нарочно ползвам BigIneger, защото доста бързо расте редицата пък и не е ясно, какъв ще е входа :)
Дано ти хареса :)

4
Victuss avatar Victuss 18 Точки
int n = int.Parse(Console.ReadLine());
for (uint i = 0, a = 0, b = 1; i < n; i++, a = a + b, b = a - b)
{
    Console.Write(a + " ");
}

За да не отиват изчисления на вятъра, може и извеждане по двойки(за четно n):

int n = int.Parse(Console.ReadLine());
int a = -1;
int b = 1;
for (uint i = 0; i < n/2; i++)
{
    a = a + b;
    b = a + b;
    Console.Write(a + " " + b + " ");
}

 

0
11/09/2015 14:53:00
dggeorgiev avatar dggeorgiev 14 Точки

Или пък:

uint n = uint.Parse(Console.ReadLine());
int a = 0;
int b = a + 1;
for (int i = 0; i < n/2; i++)
{
     Console.Write("{0} {1} ", a, b);
     a += b;
     b = a + b;
}

 

1
miroLLL avatar miroLLL 95 Точки

Здравейте,

като цяло от домашното, само тази задача ми даде малко повече зор и умуване.

Ето как се получи: http://pastebin.com/xdjXcs2R.

1
alex.mitev avatar alex.mitev 20 Точки

Netherblood  - вторият цикъл за каво е ? 

Направих задачата с нормален цикъл. След това пробвах и метода с масиви, но без вторият цикъл, но ми хвърля ексепшън след 3-тото завъртане.

 

 int lenght = int.Parse(Console.ReadLine());

            int[] numbers = new int[lenght];
            numbers [0] = 0;
            numbers [1] = 1;

            for (int i = 2; i <= 10; i++)

            {
                numbers[i] = numbers[i - 2] + numbers[i - 1];                  
            }

После принтирам, работи, но излиза от range...

Ако установим позиция [0] = 0 и [1] = 1; като пуснем цикъла от две, не трябва ли да стане следното ; 

първо завъртане ; number [2] = number [2-2] + number [2-1] = презаписваме позиция 2  и принтираме

второ завъртане - number [3] = number [3-2] + number [3-1] = позиция 3 и принтираме.

След третото записване има ексепшън. Ако може да помогнете откъде идва.

Мерси

 

0
Samuil.Petrow avatar Samuil.Petrow 1550 Точки

Въведеният ти length по всяка вероятност е по-малък отколкото трябва, големината на масива после зависи от него и на въпросното трето извъртане се опитва да достъпи елемент с несъществуващ индекс.

0
alex.mitev avatar alex.mitev 20 Точки

Мерси за отговора. Странното е , че пробвах с много различни дължини, но винаги след 3-то завъртане е ексепшъна... дебъгвах го, чудих се...

Надявам се, някой да вижда нещо различно.

 

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