Szerző Téma: Páros vagy páratlan?  (Megtekintve 1135 alkalommal)

Nem elérhető ZeRo

  • 4620
  • Ex Globális Moderátor
    • Profil megtekintése
Páros vagy páratlan?
« Dátum: 2011. Május 26. - 21:32:08 »
0 Show voters
A múltkor szükségem volt egy érték paritásának megállapítására, ez a módszer jutott eszembe, gondoltam felteszem ide is, hátha valakinek még hasznára válik. :)


[pawn]
stock iseven( const number ) {
    return !( number % 2 ) ? true : false;
}
[/pawn]


Egy példa:
[pawn]
public OnFilterScriptInit(  ) {
    if( iseven( 2 ) ) print( \"Páros\" );
    else print( \"Páratlan\" );
    return 1;
}
[/pawn]
Az eredmény értelemszerûen a \'Páros\' kiírása lesz, hiszen a 2 egy páros szám.


Minden észrevételt köszönök ha van. ;)
« Utoljára szerkesztve: 2011. November 14. - 22:41:33 írta Zsolesszka »

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
Páros vagy páratlan?
« Válasz #1 Dátum: 2011. Május 26. - 21:50:25 »
0 Show voters
Kis kód, de néha tényleg nagyon hasznos lehet.
Találtam rá amúgy egy egyszerûbb megoldást is, csak ennek a mûködését neméppen értem :D
[pawn]
#define isodd(%0)  ((%0)&1)
#define iseven(%0) (!isodd(%0))
[/pawn]
Amúgy észrevétel az, hogy !(number), megfordítod a % visszatérését, mivel ez akkor tér vissza egy-el, ha maradék van.
E: konstantok számnak is meglehet úgyanúgy adni, mint stringnek ? ( Úgy értem, ahogy itt használtad, hogy bemenetnél )
« Utoljára szerkesztve: 2011. Május 27. - 17:55:45 írta kurta999 »

Páros vagy páratlan?
« Válasz #2 Dátum: 2011. Május 27. - 13:02:15 »
0 Show voters
Az egyik témában írtam és azt hiszem hogy az IsPrime topicjában.
Binary kódként minden páratlan szám elsõ bitje 1.
 

for(new i; i < 15; i++)
{
if(i & 1) printf(\"páratlan: %d | %b\", i, i);
else printf(\"páros: %d | %b\", i, i);
}

 

[2011.05.27 13:00:05] páros: 0 | 0
[2011.05.27 13:00:05] páratlan: 1 | 1
[2011.05.27 13:00:05] páros: 2 | 10
[2011.05.27 13:00:05] páratlan: 3 | 11
[2011.05.27 13:00:05] páros: 4 | 100
[2011.05.27 13:00:05] páratlan: 5 | 101
[2011.05.27 13:00:05] páros: 6 | 110
[2011.05.27 13:00:05] páratlan: 7 | 111
[2011.05.27 13:00:05] páros: 8 | 1000
[2011.05.27 13:00:05] páratlan: 9 | 1001
[2011.05.27 13:00:05] páros: 10 | 1010
[2011.05.27 13:00:05] páratlan: 11 | 1011
[2011.05.27 13:00:05] páros: 12 | 1100
[2011.05.27 13:00:05] páratlan: 13 | 1101
[2011.05.27 13:00:05] páros: 14 | 1110
[/quote]

Nem elérhető Y2K

  • 488
    • Profil megtekintése
Páros vagy páratlan?
« Válasz #3 Dátum: 2011. Május 27. - 14:17:46 »
0 Show voters
Mivel, ha 1 a vége, nem osztható 10-zel (2-vel)... Logikus...

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal