Czesc, chcialem sie zapytac czy dobrze wszystko zrobilem piszac ten program,
mialem ciag Fibo... napisac w sposob rekuren, sekwencyjnie + na koncu zastosowac wzor Bineta:
using System;
namespace fibonacci
{
class Program
{
public static long fib(long n)//rekurencyjnie
{
if (n == 0)
return 0;
if (n == 1)
return 1;
else
return fib(n - 1) + fib(n - 2);
}
public static long fib_it(long n)//iteracja
{
int a = 0, b = 1;
for (int i = 0; i < (n - 1); i++)
{
b += a;
a = b - a;
}
return b;
}
public static double Binet(long n)//wzor Bineta
{
if (n == 0)
return 0;
else
return 1 / Math.Sqrt(5) * ((Math.Pow(((1 + Math.Sqrt(5)) / 2), n)) - (Math.Pow(((1 - Math.Sqrt(5)) / 2), n)));
}
static void Main(string[] args)
{
string line;
long n;
Console.WriteLine("Ktory wyraz ciagu Fibonacciego obliczyc?:");
line = Console.ReadLine();
n = long.Parse(line);
Program.fib(n);
Console.WriteLine(n + " wyraz ciagu Fibonacciego:" + fib(n));
Program.fib_it(n);
Console.WriteLine(n + " wyraz ciagu Fibonacciego iteracja:" + fib_it(n));
Program.Binet(n);
Console.WriteLine(n + " wyraz ciagu ze wzoru Bineta:" + Binet(n));
Console.ReadLine();
}
}
}