Rozdział 30 - Zagnieżdżanie pętli - Zadanie z Lotto
Ostatnio zmodyfikowano 2016-10-24 07:59
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: #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. |
|
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. for( int i = 1; i < 49; ++i ) { for( int j = i + 1; j < 49; ++j ) { } } 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. |
|
« 1 » |