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

zadanie rekurencja

VPS Starter Arubacloud
0 głosów
829 wizyt
pytanie zadane 13 grudnia 2017 w C i C++ przez Zu3425 Nowicjusz (120 p.)

Mam problem, napisałam kod, ale wyświetla się błąd too few arguments to function  'int a(int, int, int)'

Zaprogramuj funkcję rekurencjną, która oblicz wartość dla a(n):

a(0)=A

a(2n)=B*a(n)

a(2n+1)=a(1)+a(2n)

w funkcji main wczytaj wartości n, A, B (liczby całkowite), wywołaj funkcję dla tych wartości i wyświetl wynik. 

dla danych wejściowych 2 3 3 poprawna odpowiedż to 8.

dla 5 7 49 odpowiedz to 96045

#include <iostream>
using namespace std;
int a(int n, int A, int B)
{
    if(n==0)
        return A;
    if(n%2==0)
        return B*a(n/2);
    if(n%2==1)
        return a(1)+a((2*n-1)/2);
}
int main(){
int c,x,z;
cout<<"podaj n,A,B: ";
cin>>c>>x>>z;
cout<<a(c,x,z);
return 0;
}

 

1 odpowiedź

0 głosów
odpowiedź 13 grudnia 2017 przez criss Mędrzec (172,590 p.)

Błąd jest dość jasny - podajesz funkcji trójargumentowej jeden argument. Np. zamiast a(n/2); - a(n/2, A, B); .

PS: 

if(n%2==1)
   return a(1)+a((2*n-1)/2);

To nie jest przypadkiem nieskończona rekurencja? 

komentarz 13 grudnia 2017 przez Zu3425 Nowicjusz (120 p.)
Dziękuję, nie wiedziałam że trzeba jeszcze te argumenty pisać, i faktycznie coś nie działa z tym warunkiem :/
komentarz 13 grudnia 2017 przez criss Mędrzec (172,590 p.)
Tak jest w treści zadania... więc IMO zadanie jest skopane, albo czegoś nie skumałem.

Podobne pytania

0 głosów
2 odpowiedzi 581 wizyt
pytanie zadane 30 stycznia 2017 w C# przez mixol96 Nowicjusz (180 p.)
0 głosów
2 odpowiedzi 2,573 wizyt
pytanie zadane 4 listopada 2015 w C i C++ przez Lukasz95 Bywalec (2,160 p.)
0 głosów
1 odpowiedź 268 wizyt
pytanie zadane 30 października 2016 w Java przez Wiciorny Ekspert (277,460 p.)

92,977 zapytań

141,940 odpowiedzi

321,182 komentarzy

62,303 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.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...