Problem z zadaniem obliczającym wyrażenie (ciąg)

0

Cześć, mam pewien problem z zadaniem:

Zaimplementuj metodę obliczającą to wyrażenie:
wyrazenie(0) = 1
wyrazenie(1) = 1
wyrazenie(a), gdy a jest parzyste = a * (a-2) * ... * 2 np. a = 6 //6*(6-2)*(4-2)*2
wyrazenie(a), gdy a nie jest parzyste = (a-1) * (a-3) * ... * 2

Napisałem w pętli if/else if warunki do 2 pierwszych wyrażeń (to jest banalne) oraz warunki do liczb parzystych i nieparzystych. Tylko nie wiem jak zabrać się za ten ciąg

Czy ktoś jest w stanie mi z tym pomóc, albo podać wskazówkę jak się za to zabrać?
Z góry dziękuje!

0
wietol99 napisał(a):

Napisałem w pętli if/else if warunki do 2 pierwszych wyrażeń (to jest banalne) oraz warunki do liczb parzystych i nieparzystych. Tylko nie wiem jak zabrać się za ten ciąg

Nie opisuj kodu, tylko go daj

0

Słyszałeś o rekurencji?

def fun(n):
    if n =< 2: 
        return 1
    if even(n): 
        return ...
    return ...
0

@ZrobieDobrze:

public class Main {
    public static void main(String[] args) {


        obliczWyrazenie(6);


    }

    public static int obliczWyrazenie(int a){
        if (a == 0){
            return 1;
        } else if (a == 1){
            return 1;
        } else if (a >= 2 && a%2 == 0) {
            for (int i = a; i >2; i-=2){
            }
        return a;
    }
}

1

@lion137 & @wietol99 : Obaj dostają pałę. Wystarczy tyle:

    public static long func(int i)
	{
        long v=1L;
		for(i&=(~1);i>=2;i-=2) v*=i;
		return v;
	}

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