Cześć, mam zadanko na rekurencję o treści: "Stwórz funkcję string ZwrocPodzielne(int[] tab, int n, int i=0) , która zwraca jedynie liczby podzielne przez n z tablicy, w postaci tekstowej wykorzystując rekurencję, w formacie bez spacji oraz znaku przejścia do nowej linii, zgodnie z kolejnością występowania, np.: [3,4,8,6]"
Napisałam taki kod:
static string ZwrocPodzielne(int[] tab, int n, int i = 0)
{
if (i == tab.Length)
{
if (i == 0)
{
return "[]";
}
return "]";
}
if (tab.Length == 1)
{
if (tab[i] % n == 0)
{
return "[" + tab[i] + "]";
}
}
if (i == 0)
{
if (tab[i] % n == 0)
{
return "[" + tab[i] + "," + ZwrocPodzielne(tab, n, i + 1);
}
return "[" + ZwrocPodzielne(tab, n, i + 1);
}
if (tab[i] % n == 0)
{
if (i == tab.Length - 1)
{
return tab[i] + "]";
}
return tab[i] + "," + ZwrocPodzielne(tab, n, i + 1);
}
return ZwrocPodzielne(tab, n, i + 1);
}
problem polega na tym, że w momencie gdy w tablicy jest tylko jedna liczba spełniająca warunek np. tablica to [3,4,5,6,7,2,3], a n=4 to wynik jest [4,] z przecinkiem na końcu zamiast [4]. Czy da się problem jakoś obejść bez tworzenia pomocniczej tablicy w której można byłoby umieścić tylko liczby spełniające warunek? Jakieś pomysły?