Algorytm z arkusza maturalnego

0

Chcę napisać ten algorytm w c++, ale nie wiem jak ma "zakończyć procedurę" przez co wypisuje "X" w nieskończoność.

Korale(n)

  1. Jeżeli n = 1, to
    1.1. nawlecz czarny koralik na prawy koniec sznurka,
    1.2. zakończ działanie procedury.

  2. Jeżeli n jest parzyste, to
    2.1. wykonaj Korale(n/2),
    2.2. nawlecz biały koralik na prawy koniec sznurka,
    2.3. zakończ działanie procedury.

  3. Jeżeli n jest nieparzyste, to
    3.1. wykonaj Korale((n-1)/2),
    3.2. nawlecz czarny koralik na prawy koniec sznurka,
    3.3. zakończ działanie procedury.

#include <iostream>

using namespace std;

int x=0;

int Korale(int n){
    if (n=1) cout << "X";
    if (n%2==0){
            Korale(n/2);
            cout << "X";
        }
    if (n%2!=0){
            Korale(n-1/2);
            cout << "O";
        }
}

int main()
{
    cin >> x;
    Korale(x);

    return 0;
}
2
if (n==1) 
{
 cout << "X";
 return 0;
}
2

Oprócz @up:

  1. Zmienna globalna
  2. Funkcja nic nie zwraca, a jest deklarowana jako int Korale()
  3. Korale(n-1/2); - a gdzie nawiasy?
  4. Niepotrzebny if (n % 2 != 0), wystarczy else do poprzedniego ifa

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