Rekurencja, tablica

0

Cześć,
czy ma ktoś pomysł jak wykonać poniższe zadanie, aby funkcja zwracała 0, gdy tablica nie posiada elementów spełniających warunek?

Stwórz funkcję double Pomnoz2(double[] tab, int i=0) , która zwraca wynik mnożenia wszystkich liczb w tablicy podzielnych przez 7 lub 3 wykorzystując rekurencję.

0

"Opakuj" funkcję w drugą funkcję, która najpierw sprawdza liniowo tablicę i albo zwraca 0, albo inkryminowaną funkcję rekurencyjną.

EDYCJA: Bredzę, wystarczy jedna funkcja, przecież mamy dodatkowy parametr, int, który będzie słuzył do poruszania się po tablicy; wystarczy na początku funkcji sprawdzić liniowo i zwrócić zero, a potem kontynuować z rekurencją.

0

Tak patrząc na dzisiejsze posty, to musze odszczekać powyższa edycję, rozwiązanie z jedną funkcją staje się z liniowego kwadratowe (bardzo duża cena za zredukowanie ilości funkcji z dwóch do jednej :-D ). Jednka trzeba użyć "wrappera", a tak to wygląda, z pojedynczą metodą:
https://repl.it/@lion137/recursiveMultshit

0
lion137 napisał(a):

Tak patrząc na dzisiejsze posty, to musze odszczekać powyższa edycję, rozwiązanie z jedną funkcją staje się z liniowego kwadratowe (bardzo duża cena za zredukowanie ilości funkcji z dwóch do jednej :-D ). Jednka trzeba użyć "wrappera", a tak to wygląda, z pojedynczą metodą:
https://repl.it/@lion137/recursiveMultshit

No nie koniecznie, przecież nie trzeba iterować w każdym wywołaniu metody tylko dla i = 0; a kolejna rzecz to sprawdzasz do napotkania pierwszego elementu spełniającego warunki. Jęśli taki element się pojawi to pętle przerywasz i nie zwracasz 0.

0

Ha, ha, ha, racja, chyba pisząc to miałem jakieś zwidy po oglądaniu Wiedźmina :-D; korekta:
https://repl.it/@lion137/someMultShit2

0

No i te zera w tablicy to też kwestia doprecyzowania bo w wymaganiach nie było, żeby je pomijać :P

0

To już wynika z matematyki, musi się uwzględnić zera - 0 mod n = 0.

1 użytkowników online, w tym zalogowanych: 0, gości: 1