Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Rozdział 30 - Zagnieżdżanie pętli - Zadanie z Lotto

Ostatnio zmodyfikowano 2016-10-24 07:59
Autor Wiadomość
space473
Temat założony przez niniejszego użytkownika
Rozdział 30 - Zagnieżdżanie pętli - Zadanie z Lotto
» 2016-10-24 02:53:14
Mój kod wygląda następująco:

C/C++
#include <iostream>

int main()
{
    int licznik = 0;
    for( int x = 1; x <= 49; x++ )
    {
        for( int c = 1; c <= 49; c++ )
        {
            if( c == x )
            {
                continue;
            }
            for( int v = 1; v <= 49; v++ )
            {
                if( v == x || v == c )
                {
                    continue;
                }
                for( int b = 1; b <= 49; b++ )
                {
                    if( b == x || b == c || b == v )
                    {
                        continue;
                    }
                    for( int n = 1; n <= 49; n++ )
                    {
                        if( n == x || n == c || n == v || n == b )
                        {
                            continue;
                        }
                        for( int m = 1; m <= 49; m++ )
                        {
                            if( m == x || m == c || m == v || m == b || m == n )
                            {
                                continue;
                            }
                            licznik++
                        }
                    }
                }
            }
        }
    }
    std::cout << licznik;
    return 0;
}

Licznik wynosi na koniec działania programu: 1478412928. Proszę o pomoc.
P-152848
carlosmay
» 2016-10-24 07:59:36
Zdecydowanie przekombinowane.
Wystarczy aby każda zagnieżdżona pętla zaczynała z licznikiem o jeden większym od aktualnego licznika poprzedniej pętli.

C/C++
for( int i = 1; i < 49; ++i ) {
    for( int j = i + 1; j < 49; ++j ) {
        // ...itd
    }
}
Wtedy nie potrzebujesz żadnych warunków do sprawdzania, czy aby liczby nie powtarzają się (z resztą błędnych sądząc po wyniku).

Jeśli nie masz pewności czy program działa właściwie użyj debuggera,
ew. zmniejsz ilość liczb, wypisz wyniki i sprawdź czy są zgodne z oczekiwaniem.
P-152849
« 1 »
  Strona 1 z 1