C++ nyelven kellene a fibonacci sorozat megoldása rekurzióval. Tudna segíteni valaki esetleg a program megírásában?
Pofon egyszerű: A rekurzív összefüggés: [link]
A pszeudo kódot írom:
fib(n){
if (n==0)return 0;
if (n==1) return 1;
return fib(n-1)+fib(n-2);
}
Köszönöm a segítséget, de mivel egyáltalán nem értek a programozáshoz, viszont egy dolgozathoz csatolnom kellene az egész programot, ezért megtennéd,hogy elejétől a végéig leírod?
Köszönöm szépen előre is.
Nem kell megtanulnom. senki nem kéri számon tőlem a későbbiekben, csak egy megfigyelt tanuulmányomnak ez volt a témája, viszont ott nem volt lehetőségem leírni, és most kellene,hogy csatolni tudjam.
Na de mindegy. Nem magyarázkodom.
Majd megoldom máshogy, ha nem segítetek.
Azért köszi
Én tavaly írtam jávába egy ilyet, remélem azért egy kicsit tudtamm segíteni :)
class fibonacci{
public static void main( String[] args ){
if (args.length == 3){
int a1 = Integer.parseInt(args[0]);
int a2 = Integer.parseInt(args[1]);
int elozo = a2;
int elozoelotti = a1;
int temp = 0;
int n =Integer.parseInt (args[2]);
System.out.print (a1 + ", " + a2 + ", ");
for (int i = 3; i <= 30; i++){
temp = elozo + elozoelotti;
System.out.println(temp + ", ");
elozoelotti = elozo;
elozo = temp;
temp = 0;
}
}else{
System.out.println("A program használatát");
System.out.println("Java fibonacci a1 a2 dbszám");
}
}
}
Előző az nem rekurzív.
(Első vagyok.)
Itt van kérdező ha aktuális még, működő online ki is próbálható: [link]
Lassú, mert hányszor számolja ki a tagokat? Ugyan azt a tagot újra és újra exponenciálisan sokszor, mert nincs emlékezete ... hogy lehetne gyorsítani, úgy hogy rekurzív maradjon?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
public static void fibo(int n)
{
int elem = 1;
int elozoelem = 0;
Console.Write("0 1");
if (n > 2)
{
for (int i = 3; i <= n; i++)
{
elem = elem + elozoelem;
Console.Write(" {0}",elem);
elozoelem = elem - elozoelem;
}
}
}
static void Main(string[] args)
{
Console.WriteLine("Hány elemet akarunk tudni?");
int n = Convert.ToInt32(Console.ReadLine());
fibo(n);
Console.ReadKey();
}
}
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!