|
| Odd number Fra : Dennis Olesen |
Dato : 14-09-04 20:22 |
|
Er det den rigtig måde at teste om et tal er ulige? Findes der en anden og
bedre måde ?
if (Number % 2 == 0 )
MVH
Dennis
| |
Kristian Thy (14-09-2004)
| Kommentar Fra : Kristian Thy |
Dato : 14-09-04 20:32 |
| | |
Dennis Olesen (14-09-2004)
| Kommentar Fra : Dennis Olesen |
Dato : 14-09-04 20:44 |
|
Tak for det hurtige svar
MVH
Dennis Olesen
| |
Niels Dybdahl (15-09-2004)
| Kommentar Fra : Niels Dybdahl |
Dato : 15-09-04 09:00 |
|
> > Er det den rigtig måde at teste om et tal er ulige? Findes der en anden
og
> > bedre måde ?
> >
> > if (Number % 2 == 0 )
>
> Ovenstående er den statsautoriserede og helt igennem korrekte måde at
> teste om et tal er ulige.
Forudsat at Number er et heltal.
Niels Dybdahl
| |
Kristian Thy (15-09-2004)
| Kommentar Fra : Kristian Thy |
Dato : 15-09-04 09:05 |
| | |
Niels Dybdahl (15-09-2004)
| Kommentar Fra : Niels Dybdahl |
Dato : 15-09-04 13:34 |
|
> >> > if (Number % 2 == 0 )
> >>
> >> Ovenstående er den statsautoriserede og helt igennem korrekte måde at
> >> teste om et tal er ulige.
> >
> > Forudsat at Number er et heltal.
>
> Sidst jeg tjekkede var lige/ulige kun defineret for heltal, så det er
> vel underforstået?
Netop derfor. Man kan sagtens putte en double ind i overstående og få at
vide at 8.5 er lige. Men det giver ikke meget mening.
Niels Dybdahl
| |
Kristian Thy (15-09-2004)
| Kommentar Fra : Kristian Thy |
Dato : 15-09-04 13:40 |
| | |
Soren Kuula (16-09-2004)
| Kommentar Fra : Soren Kuula |
Dato : 16-09-04 23:13 |
|
Hejsa,
Kristian Thy wrote:
> Dennis Olesen uttered:
>>Er det den rigtig måde at teste om et tal er ulige? Findes der en anden og
>>bedre måde ?
>>
>>if (Number % 2 == 0 )
JA, der findes en anden måde:
if ((number & 1) == 0)
Den er i hvert fald ikke langsommere end den første, og måske hurtigere
(fordi processoren ikke skal ud i at lave en division, men blot en AND,
som kan klares på konstant, meget kort tid). Prøv evt. at benchmark og
se om det er noget der rykker.
Men den første metode er mere generel; den kan tjekke om alle mulige
andre tal end 2 går op i Number. Min virker kun med 2, 4, 8, ....
MVH
Søren
| |
kgc (17-09-2004)
| Kommentar Fra : kgc |
Dato : 17-09-04 08:38 |
|
Dennis Olesen wrote:
> Er det den rigtig måde at teste om et tal er ulige? Findes der en anden og
> bedre måde ?
>
> if (Number % 2 == 0 )
Er 8 ulige?
8 % 2 == 0 -> true
Den rigtige måde at teste om et tal er _ulige_ må være:
if (Number % 2 == 1)
eller:
if (!(Number % 2 == 0))
eller
if (Number % 2 != 0)
Idet % er resten ved heltalsdivision, er definitionen på "x går op i y"
at "y % x == 0" og definitionen på "y lige" er "2 går op i y". Eller
tager jeg fejl?
Mvh. Kasper
--
Besøg mig på nettet: http://www.kaspershjemmeside.dk
| |
Kristian Thy (17-09-2004)
| Kommentar Fra : Kristian Thy |
Dato : 17-09-04 14:53 |
| | |
|
|