Rekurencyjne mnożenie liczb w tablicy. C# Problem gdy w tablicy nie ma ich

0

Cześć wszystkim, jestem początkującym programistą, który ma problem z pewnym z zadań na rekurencję. Funkcja static int Iloczyn(int[] T, int x, int y, int i = 0)
Rekurencyjnie zwraca iloczyn liczb które znajdują się w danym przedziale (x, y) jeśli nie wyświetla 0. (ewentualnie coś innego). Umiem zrobić coś takiego jak poniżej, ale nie mam pomysłu jak zrobić żeby wyświetlało 0, gdy w tablicy nie ma takich liczb.
Bardzo proszę o pomoc w nakierowaniu mnie, z góry dziękuję.

static int Iloczyn(int[] T, int x, int y, int i = 0)
{
   if (T.Length == i)
   {
       return 1;
   }
   if (T[i] > x && T[i] < y)
   {
       return T[i] * Iloczyn(T, x, y, i + 1);
   }
   return Iloczyn(T, x, y, i + 1);
}
1
static int Iloczyn(int[] T, int x, int y, int i = 0, bool found = false)
{
   if (T.Length == i)
   {
       return found ? 1 : 0;
   }
   if (T[i] > x && T[i] < y)
   {
       return T[i] * Iloczyn(T, x, y, i + 1, true);
   }
   return Iloczyn(T, x, y, i + 1, found);
}
0

Dzięki Wielkie, bardzo mi pomogłeś. Teraz już wszystko wiem.

0
neves napisał(a):
static int Iloczyn(int[] T, int x, int y, int i = 0, bool found = false)
{
   if (T.Length == i)
   {
       return found ? 1 : 0;
   }
   if (T[i] > x && T[i] < y)
   {
       return T[i] * Iloczyn(T, x, y, i + 1, true);
   }
   return Iloczyn(T, x, y, i + 1, found);
}

Przepraszam a jak powinny działać dwie pozostałe???

0

bez dodatkowego parametru ta wersja powinna działać:

        static int Iloczyn(int[] T, int x, int y, int i = 0)
        {
            if (T.Length == i)
            {
                return int.MinValue;
            }

            int value = Iloczyn(T, x, y, i + 1);

            if (T[i] > x && T[i] < y)
            {
                value = (value == int.MinValue) ? T[i] : T[i] * value;                 
            }

            if (i == 0)
            {
                value = (value == int.MinValue) ? 0 : value;
            }

            return value;
        }

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