• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zadanie maturalne z rekurencją w postaci programu.

0 głosów
1,379 wizyt
pytanie zadane 1 sierpnia 2016 w C i C++ przez Fluskys Nowicjusz (230 p.)
edycja 1 sierpnia 2016 przez Fluskys

Witam, zastanawiam się jak wykonać to zadanie w postaci programu C++

Próbowałem zrobić coś takiego ale zwraca błąd więc coś jest źle:

#include <iostream>
#include <cmath>
using namespace std;

int rekurencja(int n)
{
    if (n==1) return 4;
    else return 1/(1-rekurencja(n-1));
}

int main()
{
    cout<<rekurencja(10);
    return(0);
}

Jest jakiś mały błąd czy cały program jest źle napisany?

2 odpowiedzi

+2 głosów
odpowiedź 1 sierpnia 2016 przez MetRiko Nałogowiec (37,110 p.)

Dodam od siebie, że to zadanie można zrobić w C++ bez rekurencji.. wystarczy sprawdzić wyniki dla czterech kolejnych wartości (od jedynki w górę):
n | f(n)
--------
1 | 4
2 | -1/3
3 | 3/4
4 | 4

Łatwo stwierdzić, że wartości będą się powtarzać cyklicznie.
Teraz wystarczy zrobić prostą funkcję opierającą się na switch'u i reszcie z dzielenia:

float Funkcja(int n)
{
    switch(n%3)
    {
        case 0: return 4.0f;
        case 1: return -1.0f/3.0f;
        case 2: return 3.0f/4.0f;
    }
}

 

komentarz 1 sierpnia 2016 przez Fluskys Nowicjusz (230 p.)
Zgadza się, doszedłem do tego że wartości bedą powtarzać się cyklicznie, jednak chciałbym mieć przykład z rekurencją, po prostu chce to wiedzieć jak to by wtedy wyglądało :)

Ale dzięki za wkład.
+1 głos
odpowiedź 1 sierpnia 2016 przez Szykem2 Nałogowiec (29,510 p.)
Po pierwsze linia 8 błąd jest w tym, że dodałeś 'int' przy przekazywaniu parametru, powinien być błąd "typename is not allowed". Po drugie po co pobierana jest zmienna w linii 14 skoro nigdzie jej nie używasz?
komentarz 1 sierpnia 2016 przez Fluskys Nowicjusz (230 p.)
Chciałem przekazywać przez referencje, zapomniałem usunać lini 14

edit: usunąłem 13 i 14

Podobne pytania

0 głosów
3 odpowiedzi 1,354 wizyt
pytanie zadane 21 sierpnia 2016 w C i C++ przez kkiermasz Użytkownik (680 p.)
0 głosów
1 odpowiedź 1,257 wizyt
pytanie zadane 26 stycznia 2017 w C i C++ przez Matt987 Użytkownik (800 p.)
+1 głos
1 odpowiedź 3,687 wizyt

93,741 zapytań

142,677 odpowiedzi

323,294 komentarzy

63,325 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...