Rozdział 30 - liczba możliwych wyników (49 po 6)
Ostatnio zmodyfikowano 2013-08-26 13:05
jaro98 Temat założony przez niniejszego użytkownika |
Rozdział 30 - liczba możliwych wyników (49 po 6) » 2013-08-26 12:11:57 Cześć, chodzi o zadanie "Napisz program, który zliczy liczbę możliwych kombinacji wylosowania 6 liczb ze zbioru 49 liczb". Sprowadza się to do obliczenia wartości symbolu newtona (bo to kombinacja 6 z 49) ale za pomocą zagnieżdżonych pętli. Powinno wyjść 13983816, nie wiem czemu wychodzi mi zły wynik z poniższego: #include <iostream> using namespace std; int main() { int i = 0; for( int x = 1; x <= 49; x++ ) { for( int y = 1; y <= 49; y++ ) { if( y <= x ) continue; for( int z = 1; z <= 49; z++ ) { if( z <= y ) continue; for( int k = 1; k <= 49; k++ ) { if( k <= z ) continue; for( int l = 1; l <= 49; l++ ) { if( l <= k ) continue; for( int m = 1; m <= 49; m++ ) { i++; } } } } } } cout << i; return 0; }
Z analogicznego kodu dla "6 po 4" (poniżej) wychodzi mi dobry wynik (15), więc chyba jest jakiś mały błąd w powyższym. #include <iostream> using namespace std; int main() { int i = 0; for( int x = 1; x <= 6; x++ ) { for( int y = 1; y <= 6; y++ ) { if( y <= x ) continue; for( int z = 1; z <= 6; z++ ) { if( z <= y ) continue; for( int k = 1; k <= 6; k++ ) { if( k <= z ) continue; cout << x << " " << y << " " << z << " " << k << endl; i++; } } } } cout << "6 po 4: " << i; return 0; } |
|
kubawal |
» 2013-08-26 12:32:36 for( int m = 1; m <= 49; m++ ) { i++; }
|
W tej pętli nie powinno być czasem sprawdzania ( m <= l )? |
|
jaro98 Temat założony przez niniejszego użytkownika |
» 2013-08-26 13:05:37 Powinno być :P, nie wiem jak to przeoczyłem, dzięki, już działa. #include <iostream> using namespace std; int main() { int i = 0; for( int x = 1; x <= 49; x++ ) { for( int y = 1; y <= 49; y++ ) { if( y <= x ) continue; for( int z = 1; z <= 49; z++ ) { if( z <= y ) continue; for( int k = 1; k <= 49; k++ ) { if( k <= z ) continue; for( int l = 1; l <= 49; l++ ) { if( l <= k ) continue; for( int m = 1; m <= 49; m++ ) { if( m <= l ) continue; i++; } } } } } } cout << i; return 0; }
|
|
« 1 » |