Jak napisać taka funkcje?

0

Witam

mamy zbiór liczb 1,2,3,4,5,6 która będzie podawana funkcji i zostanie zwrócona wartość przesunięta

public int getWartosc(int liczba){
//...
}

przesunięta to znaczy: mamy zmienna w obiekcie

public int stanowisko = 1;

gdy stanowisko ma wartosc 1 to wszystkie wyniki chciał bym by sie przesunęły a wynik powinien byc taki

stanowisko = 1;
liczba=1
getWartosc(liczba); //wynik 6

stanowisko = 2;
liczba=1
getWartosc(liczba); //wynik 1

stanowisko = 3;
liczba=1
getWartosc(liczba); //wynik 2

stanowisko = 4;
liczba=1
getWartosc(liczba); //wynik 3

stanowisko = 5;
liczba=1
getWartosc(liczba); //wynik 4

stanowisko = 6;
liczba=1
getWartosc(liczba); //wynik 5



stanowisko = 1;
liczba=1
getWartosc(liczba); //wynik 5

stanowisko = 2;
liczba=1
getWartosc(liczba); //wynik 6

stanowisko = 3;
liczba=1
getWartosc(liczba); //wynik 1

stanowisko = 4;
liczba=1
getWartosc(liczba); //wynik 2

stanowisko = 5;
liczba=1
getWartosc(liczba); //wynik 3

stanowisko = 6;
liczba=1
getWartosc(liczba); //wynik 4

zastanawiam się jak napisać poprawnie taką funkcje w sensie by to schludnie i prosto wyglądało bo jedyne co mi teraz przychodzi do głowy to góra warunków

0

Czyli za każdym razem, kiedy wywołasz getWartosc(liczba), wynik przesuwany jest o stanowisko + ilość wywołań, czy dobrze zrozumiałem? Czy w drugim przypadku liczba nie powinna być równa 2? Jeśli tak, to wymyśliłem takie coś:

public int getWartosc(int liczba) {
    int i = (stanowisko - liczba + max) % max;
    return i == 0 ? max : i;
}

gdzie max = 6 w tym wypadku.

0

Ja tez nie bardzo rozumiem jaką tu masz zalezność. Jeśli faktycznie chodzi o ilość wywołań to zwyczajnie je zliczaj. Poza tym zamiast warunków zapoznaj sie z operatorem % (reszty z dzielenia). Napisz coś wiecej o tym od czego zależą te twoje liczby, bo ten przykład niewiele mówi.

0

w zasadzie to tylko przesunie sie o ilość stanowisk inaczej to wytłumaczę

jeśli mamy stanowisko 1 to:
1 da nam 1
2 da nam 2
3 da nam 3
4 da nam 4
5 da nam 5
6 da nam 6

jeśli mamy stanowisko 2 to:
1 da nam 2
2 da nam 3
3 da nam 4
4 da nam 5
5 da nam 6
6 da nam 1

jeśli mamy stanowisko 3 to:
1 da nam 3
2 da nam 4
3 da nam 5
4 da nam 6
5 da nam 1
6 da nam 2

jeśli mamy stanowisko 4 to:
1 da nam 4
2 da nam 5
3 da nam 6
4 da nam 1
5 da nam 2
6 da nam 3

oczywiście stanowisk może być więcej ale dla przykładu jest 6

0
public static int getWartosc(int liczba) {
    return (stanowisko - 2 + liczba) % 6 + 1;
}

?

0

dziekuje bardzo :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1