[Rozdział 30] Problem z "Totolotkiem"
Ostatnio zmodyfikowano 2015-01-12 18:51
luuuzik Temat założony przez niniejszego użytkownika |
[Rozdział 30] Problem z "Totolotkiem" » 2015-01-12 18:28:46 Witam, napisałem program obliczający ilość możliwych kombinacji w Totolotku z zadania, jednakże zamiast 13 983 816 kombinacji, wyrzuca mi 16 122 225 kombinacji. Oto kod: #include <iostream> using namespace std;
int main() { int a, b, c, d, e, f, ilosc_liczb = 0; cout << "Totolotek, a oto mozliwe kombinacje: " << endl; for( a = 1; a < 50; a++ ) { ilosc_liczb += 1; for( b = 1; b < 50; b++ ) { if( a > b || a == b ) continue; ilosc_liczb += 1; for( c = 1; c < 50; c++ ) { if( b > c || b == c ) continue; ilosc_liczb += 1; for( d = 1; d < 50; d++ ) { if( c > d || c == d ) continue; ilosc_liczb += 1; for( e = 1; e < 50; e++ ) { if( d > e || d == e ) continue; ilosc_liczb += 1; for( f = 1; f < 50; f++ ) { if( e > f || e == f ) continue; ilosc_liczb += 1; } } } } } } cout << "Ilosc liczb wynosi: " << ilosc_liczb << endl; return 0; }
Gdzie popełniłem błąd? |
|
killjoy |
» 2015-01-12 18:39:47 Ilość permutacji powinieneś liczyć tylko w najbardziej zagnieżdżonej pętli. Swoją drogą strasznie przekombinowałeś :D Prostsze rozwiązanie: #include <iostream> using namespace std;
int main() { long long Perm = 0; for( int n1 = 1; n1 <= 49; n1++ ) for( int n2 = n1 + 1; n2 <= 49; n2++ ) for( int n3 = n2 + 1; n3 <= 49; n3++ ) for( int n4 = n3 + 1; n4 <= 49; n4++ ) for( int n5 = n4 + 1; n5 <= 49; n5++ ) for( int n6 = n5 + 1; n6 <= 49; n6++ ) Perm++; cout << Perm << endl; return 0; }
|
|
luuuzik Temat założony przez niniejszego użytkownika |
» 2015-01-12 18:51:15 Dzięki :D Wszystko teraz działa, a co do kombinowania to lubię wszystko rozpisywać wtedy mniej błędów robię :P Może z czasem nauczę się pisać krótsze i lepsze kody :) |
|
« 1 » |