Algorytm z arkusza maturalnego

Odpowiedz Nowy wątek
2015-02-09 20:37
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;
}
edytowany 3x, ostatnio: Itgraduate, 2015-02-09 20:38

Pozostało 580 znaków

2015-02-09 20:47
if (n==1) 
{
 cout << "X";
 return 0;
}
edytowany 1x, ostatnio: heillos, 2015-02-09 20:47

Pozostało 580 znaków

2015-02-09 21:03
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

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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