Rozbicie liczby na 3 mniejsze
Ostatnio zmodyfikowano 2010-06-13 19:54
McAffey Temat założony przez niniejszego użytkownika |
Rozbicie liczby na 3 mniejsze » 2010-06-13 17:20:22 Witam! Piszę program w którym będę musiał rozbić liczbę (dodam, że nie większą niż 20) na 3 cyfry, na zasadzie, że liczbę 19 na cyfry 6, 6 i 7 liczbę 13 na 4, 4 i 5, no a liczby podzielne przez 3 np 18, po prostu na 6, 6 i 6. Znacie może jakiś dobry algorytm? Pozdrawiam |
|
ison |
» 2010-06-13 17:23:05 jeśli liczba nie będzie większa niż 20 to nie możesz zwyczajnie sobie stablicować wyniki? |
|
DejaVu |
» 2010-06-13 17:25:14 Ja znam :D 20 - 0,1,19 19 - 0,1,18 itd. :) /edit: Można to po prostu zrobić div'em i mod'em: int wynik = liczba / 3; int liczba[ 3 ]; liczba[ 0 ] = wynik; liczba[ 1 ] = wynik; liczba[ 2 ] = wynik; int dodajJeden = wynik % 3; for( int i = 0; i < dodajJeden; i++ ) liczba[ i ] ++;
Można to ładniej i zgrabniej napisać oczywiście. |
|
ison |
» 2010-06-13 17:31:25 @up ten pana program: int wynik = liczba / 3; int liczba[ 3 ]; liczba[ 0 ] = wynik; liczba[ 1 ] = wynik; liczba[ 2 ] = wynik; int dodajJeden = wynik % 3; for( int i = 0; i < dodajJeden; i++ ) liczba[ i ] ++;
dla liczby 5 daje wyniki 1,1,2 :) |
|
DejaVu |
» 2010-06-13 17:50:31 int dodajJeden = liczba % 3;
/edit: #include <cstdio>
int main() { int lb = 6; int wynik = lb / 3; int liczba[ 3 ]; liczba[ 0 ] = wynik; liczba[ 1 ] = wynik; liczba[ 2 ] = wynik; int dodajJeden = lb % 3; for( int i = 0; i < dodajJeden; i++ ) liczba[ i ] ++; printf( "%d\t%d\t%d\n", liczba[ 2 ], liczba[ 1 ], liczba[ 0 ] ); return 0; }
|
|
McAffey Temat założony przez niniejszego użytkownika |
» 2010-06-13 19:54:36 Dzięki dokładnie o to mi chodziło ;) Pozdrawiam |
|
« 1 » |