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

Rekurencja w języku c zadanie domowe.

Object Storage Arubacloud
0 głosów
2,433 wizyt
pytanie zadane 4 listopada 2015 w C i C++ przez Lukasz95 Bywalec (2,160 p.)

Cześć, moglibyście pomóc  rozwiązać poniższe zadanie, dać jakieś wskazówki ?
 

Napisz rekurencyjną, która dla otrzymanej w argumentach pary  nieujemnych liczb całkowitych i m zwraca wartość f(n,m) gdzie funkcja f jest zdefiniowana w następujący sposób:

  • f(n,0)=n
  • f(0,m)=m
  • f(n,m)=f(n-1,m)+f(n,m-1)+f(n-1,m-1) dla n,m>0.

2 odpowiedzi

0 głosów
odpowiedź 4 listopada 2015 przez draghan VIP (106,230 p.)
wybrane 7 listopada 2015 przez Lukasz95
 
Najlepsza

Jeśli masz stworzyć rekurencyjną funkcję i masz jej opis matematyczny, to w zasadzie... Nie ma prostszego zadania. ;) W matematycznym zapisie zależności, masz jasno wyszczególnione, co i kiedy należy z funkcji zwrócić, wystarczy zapisać to w odpowiednim języku programowania. :)

Podam Ci przykład.

Polecenie: napisz funkcję silnia(n), dla n \in  N.

  • silnia(n) = 1, dla n = 0
  • silnia(n) = n * silnia(n-1), dla n ≥ 1

Kod programu:

#include <iostream>
using namespace std;

unsigned silnia(unsigned n)
{
    if(n == 0) return 1;
    else return n * silnia(n - 1);
}

int main()
{
    // test:
    for(unsigned i = 0; i < 7; ++i)
        cout<<"silnia("<<i<<") = "<<silnia(i)<<"\n";

    return 0;
}

 

komentarz 4 listopada 2015 przez draghan VIP (106,230 p.)
Wybacz, miało być w C, a w main() użyłem obiektów strumienia wyjścia z C++. Ale wpływu na samą funkcję silnia to nie ma. ;)
0 głosów
odpowiedź 4 listopada 2015 przez Patrycjerz Mędrzec (192,320 p.)
Powinno to chyba tak wyglądać, że ostatnie w wywołaniu funkcje otrzymają argumenty n, 0 i 0, m, czyli funkcje z wartością zdefiniowaną.

Powinieneś dać w definicji funkcji warunek, który przy odpowiednich argumentach zwróci m lub n, w przeciwnym razie, sumę. Reszta to magia rekurencji.

Podobne pytania

0 głosów
1 odpowiedź 750 wizyt
pytanie zadane 13 grudnia 2017 w C i C++ przez Zu3425 Nowicjusz (120 p.)
0 głosów
2 odpowiedzi 506 wizyt
pytanie zadane 30 stycznia 2017 w C# przez mixol96 Nowicjusz (180 p.)
0 głosów
0 odpowiedzi 925 wizyt
pytanie zadane 21 listopada 2017 w C i C++ przez Tomek Wilnowski Użytkownik (610 p.)

92,634 zapytań

141,505 odpowiedzi

319,883 komentarzy

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

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...