Wie würdest ihr es Programmieren ?

02/13/2010 13:01 Obilee#1
Moin, der Thread soll als kleines Rätsel dienen, und zwar damit wir mal sehn was für ProgrammierStyles wir hier haben ;)

Aufgabe ganz Einfach: Wir haben ein Operator I mit den Datentyp Int, dieses bekommt immer den Wert 1 oder 2. Falls es 1 ist, soll es auf 2 gesetzt werden, und falls es 2 ist, soll es auf 1 gesetzt werden.

Wer kann dazu den schlausten und kürzesten Code schreiben ?

Meinen Stelle ich später rein, nur zur Info: Meiner ist 1 Zeile lang.
02/13/2010 13:23 MrSm!th#2
Code:
i = (i == 1)? 2:1
02/13/2010 13:25 ms​#3
Wollte das gleiche posten, aber MrSm!th war ne Minute schneller. ;<
02/13/2010 13:26 MrSm!th#4
Quote:
Originally Posted by Disconnect View Post
Wollte das gleiche posten, aber MrSm!th war ne Minute schneller. ;<
:awesome:
Habe mich beeilt, damit ich es als erster posten kann :D
02/13/2010 13:47 Obilee#5
Meine Version : i = 3 - i; oder int onetwo[2] = { 2, 1}; i = onetwo[i-1]; ^^
02/13/2010 13:53 MrSm!th#6
Quote:
Originally Posted by Obilee View Post
Meine Version : i = 3 - i; oder int onetwo[2] = { 2, 1}; i = onetwo[i-1]; ^^
hm auf sowas muss man auch erstmal kommen :awesome:
02/13/2010 13:57 ms​#7
Code:
__asm MOV CL, 3
__asm XOR AL, CL
Nur 4 Bytes.
Beat that, bitch. ;O

bzw.
Code:
i ^= 3;
02/13/2010 14:41 tim66613#8
Das hier geht auch noch:
Code:
i = ~i + 4;
MfG tim
02/13/2010 20:56 rEdoX#9
Code:
  i := succ(i mod 2);
  i := pred(i or 2);
  i := i xor 3;
  i := succ(2 shr i);
  i := 4 shr i;
  i := 3 - i;
  i := succ(i) div i;
  i := succ(i) shr pred(i);
Die Liste ist lang ... ;D
02/14/2010 14:50 x]vIrus[x#10
ich würd auf die werte 1 und 2 scheißen, wenn ich nen toggle haben will, nehm ich nen bool D;

bool i=false;

while(true)
{
i=!i;
}
02/14/2010 17:16 MrSm!th#11
Quote:
Originally Posted by x]vIrus[x View Post
ich würd auf die werte 1 und 2 scheißen, wenn ich nen toggle haben will, nehm ich nen bool D;

bool i=false;

while(true)
{
i=!i;
}
es geht hier aber nicht um einen toggle und gerade weil es mit bool so einfach ist, soll man es auch mit 1 und 2 machen ;)
02/14/2010 17:26 Shadowz75#12
also ich würde das so machen:
Code:
            if(i == 1)
            {
                i = 2;
            }
            if (i == 2)
            {
                i = 1;
            }
[Only registered and activated users can see links. Click Here To Register...]
02/14/2010 19:57 x]vIrus[x#13
Quote:
Originally Posted by MrSm!th View Post
es geht hier aber nicht um einen toggle und gerade weil es mit bool so einfach ist, soll man es auch mit 1 und 2 machen ;)
natürlich gehts hier um nen toggle
02/14/2010 20:33 MrSm!th#14
Quote:
Originally Posted by x]vIrus[x View Post
natürlich gehts hier um nen toggle
aber es ist explizit int 1 und 2 in der aufgabenstellung :facepalm:
02/15/2010 15:44 HardCore.1337#15
if i = 1 then i := 2 else i := 1;