rekurencja

0

Stwórz funkcję: long PomnozNiepodzielne(int n) Funkcja rekurencyjnie oblicza iloczyn wszystkich liczb całkowitych znajdujących się między liczbą n przesłaną jako argument funkcji a liczbą 0 (wyłączając 0), które jednocześnie spełniają obydwa warunki: są niepodzielne przez 7 oraz niepodzielne przez 5. Dla n = 0 funkcja zwraca 0.

Niby taka prosta funkcja a mam problem z napisaniem kodu.
Pozdrawiam

0
    class Program
    {
        static long PomnozNiepodzielne(int n)
        {
            if (n==0)
            {
                return 0;
            }
            if (n>0)
            {
                PomnozNiepodzielne(n - 1);
            }
            if (n<0)
            {
                PomnozNiepodzielne(n + 1);
            }
            if (n%5 != 0 && n% 7 != 0)
            {
                n *= n;
            }
            return n;

        }
        static void Main(string[] args)
        {

            Console.WriteLine(PomnozNiepodzielne(-5));
            Console.ReadKey();
        }
    }
}
0

A co jest nie tak z tym kodem?

0

Może ktoś zaproponuje przykładowe rozwiązanie?

2

Tak to wygląda w pseudokodzie:

function mult_not_divisible(n):
    if n == 1:
        return 1
    else if n % 35 == 0:
        return n * mult_not_divisible(n - 1)
    else:
        return mult_not_divisible(n - 1)

Jak jest proste zadanie rekurencyjne, to zwyczajnie Przepisujesz treść zadania w kod, pamietając tylko o właściwym warunku stopu.

0

nie wiem jak zpisać, żeby funkcja działała dla ujemynch i dodatnich parametrów n

0

Funkcja rekurencyjnie oblicza iloczyn wszystkich liczb całkowitych znajdujących się między liczbą n przesłaną jako argument funkcji a liczbą 0 (wyłączając 0), które jednocześnie spełniają >obydwa warunki: są niepodzielne przez 7 oraz niepodzielne przez 5. Dla n = 0 funkcja zwraca 0.

Czyli nie wliczamy liczb ujemnych, całkowite większe niż zero.

0

w zadaniu na RUNCODE muszą być ujemne

0

To źle Opisałeś problem od początku; Napisz prawdziwą treść zadania, a nie Ściemniaj.

0

treść zadania jest jak podałem, tylko program testuje aplikacja Runcode i sprawdza program dla dodatnich i ujemnych parametrów

ID: 3 Funkcja: PomnozNiepodzielne Parametry: System.Int32: 2 Oczekiwano: System.Int64: 2 Zwrócono: System.Int64: 0", "
ID: 5 Funkcja: PomnozNiepodzielne Parametry: System.Int32: 5 Oczekiwano: System.Int64: 24 Zwrócono: System.Int64: 0", "
ID: 7 Funkcja: PomnozNiepodzielne Parametry: System.Int32: 15 Oczekiwano: System.Int64: 17791488 Zwrócono: System.Int64: 0", "
ID: 9 Funkcja: PomnozNiepodzielne Parametry: System.Int32: -2 Oczekiwano: System.Int64: 2 Zwrócono: System.Int64: 0", "
ID: 11 Funkcja: PomnozNiepodzielne Parametry: System.Int32: -5 Oczekiwano: System.Int64: 24 Zwrócono: System.Int64: 0", "
ID: 2 Funkcja: PomnozNiepodzielne Parametry: System.Int32: 1 Oczekiwano: System.Int64: 1 Zwrócono: System.Int64: 0", "
ID: 4 Funkcja: PomnozNiepodzielne Parametry: System.Int32: 3 Oczekiwano: System.Int64: 6 Zwrócono: System.Int64: 0", "
ID: 6 Funkcja: PomnozNiepodzielne Parametry: System.Int32: 10 Oczekiwano: System.Int64: 10368 Zwrócono: System.Int64: 0", "
ID: 8 Funkcja: PomnozNiepodzielne Parametry: System.Int32: -1 Oczekiwano: System.Int64: -1 Zwrócono: System.Int64: 0", "
ID: 10 Funkcja: PomnozNiepodzielne Parametry: System.Int32: -3 Oczekiwano: System.Int64: -6 Zwrócono: System.Int64: 0", "
ID: 12 Funkcja: PomnozNiepodzielne Parametry: System.Int32: -10 Oczekiwano: System.Int64: -10368 Zwrócono: System.Int64: 0", "
ID: 1 Funkcja: PomnozNiepodzielne Parametry: System.Int32: 0 Oczekiwano: System.Int64: 0 Zwrócono: System.Int64: 0" ]

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