Czy da się bez użycia warunków if
Ostatnio zmodyfikowano 2010-12-27 04:53
Marys Temat założony przez niniejszego użytkownika |
Czy da się bez użycia warunków if » 2010-12-24 03:34:25 Witam ponownie, tym razem natknąłem się na problem z dziwną zależnością zmiennych i nie wiem za bardzo jak to w efektowny sposób zapisać w programie. Załóżmy, że mam 3 zmienne: 1. a - ta zmienna wczytujemy z klawiatury 2. b i c, które zależą od a Teraz sytuacja wygląda tak: Najmniejsza wartość a to 5 i gdy a=5 to b=1 i c=1, ale jak a=6 to b=2 i c=1, a=7 to b=2 i c=2, a=8 to b=3 i c=2, a=9 to b=3 i c=3 itd.
Czy istnieje jakiś inny sposób niż warunki if? Czy da się to zapisać w szybszy sposób? |
|
DejaVu |
» 2010-12-24 04:00:54 Nie wiem czy Ciebie zrozumiałem, ale:
int a = 8; int b = a + 3; int c = a + b - 10;
Jeżeli chcesz aby wartości b i c się zmieniły z chwilą zmiany liczby a to musisz wykonać ponownie przeliczyć wartości b i c. |
|
F90M |
» 2010-12-24 05:03:43 Da się :) b =( a - a % 2 ) / 2 - 1; c =( a + a % 2 ) / 2 - 2;
|
|
Mazzir |
» 2010-12-25 17:23:22 Matematyka się kłania ;) Tak, da się ;p Tak jak koledzy podali tylko trzeba ruszyć głową i pomyśleć, że przecież można na zmiennych operować. Ale if to święta rzecz ;p |
|
jsc |
» 2010-12-25 20:08:34 Można wykorzystać konstrukcje switch...case. Opis jest pod: http://cpp0x.pl/?nro=17 |
|
szyx_yankez |
» 2010-12-25 20:25:12 @UP a co gdy np. a == 2011? Będziesz pisał setki case'ów? |
|
jsc |
» 2010-12-25 20:46:13 Jeśli chcesz taką wielką tablicę to ci mogę napisać program generujący plik źródłowy.
A tak nawiasem można kod F90M można trochę uprościć: a =- 3 b = a/2; c = 2*b - a; |
|
szyx_yankez |
» 2010-12-25 21:02:20 @UP nie chodzi o to po prostu chciałem udowodnić, że twoje rozwiązanie jest niepraktyczne. |
|
« 1 » 2 3 |