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

Rozbicie liczby na 3 mniejsze

Ostatnio zmodyfikowano 2010-06-13 19:54
Autor Wiadomość
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
P-17992
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?
P-17993
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:
C/C++
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.
P-17994
ison
» 2010-06-13 17:31:25
@up
ten pana program:
C/C++
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 :)
P-17995
DejaVu
» 2010-06-13 17:50:31
C/C++
//int dodajJeden = wynik%3;
int dodajJeden = liczba % 3;
/edit:
C/C++
#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;
}
P-17996
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
P-18004
« 1 »
  Strona 1 z 1