Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Shark^
eighty; om din översta ska gå ihop måste j vara 14 från början, och sedan för att klaga på lite mer så är det ingen bra att öka på j okontrollerat i båda exemplen, vad händer när j är 2 147 483 647? För mig känns inte så bra att bygga in "buggar" man vet om, speciellt inte i en så enkel kod..

Nej, j kan vara 0. Och jag skulle ha gjort i och j unsigned, men jag fick ambiguity hos std::abs och orkade inte hålla på, utan ville bara kunna posta kompilerbar kod här.

Visa signatur

:€

Permalänk
Hedersmedlem

Varför inte koda med mellanrum? Koden blir så rörig annars... Exempelvis en klassiker

for (int i = 0; i < 10; i++) { std::cout << i; }

Mycket lättare att se vad som hör till vad...

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Medlem

eighty är inte j 14 börjar ditt översta exempel..

0 13 12 11 10 9 87 6 5 4 3 2 1 0 1 2 3 4 5 6 7 6 5 4 3 2 1 0...

börjar j på 14 blir det

0 1 2 3 4 5 6 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 6 5 4 3 2 1 0...

for (int j = 14, i = 0; ; i = abs( (++j-8)%14-6 ))

att göra j till unsigned int ger dig bara 4294967295 omgånger endå

Visa signatur

~ When there's no more room in hell, the dead will walk the earth. ~

Permalänk

Snyggast tycker jag pythonkoden var. Både kort och lättläst.
Här kan man tydligt se att kort inte alltid är snyggast...

Är tyvärr för trött för att skriva nåt i assembler.
Någon som kan?

Visa signatur

Python-IRC på svenska: #python.se

Permalänk
Hedersmedlem

Sebastianj: Hehe, mjo pythonkod är fin

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Medlem

Shark^: Ok, j hade fel startvärde. Jag skrev av fel när jag postade i forumet... men jag testkörde koden och då funkade den som den skulle. i kommer slå över till 0 efter att den antagit 2^32-1. Men inget realistiskt program skulle köra 4 miljarder iterationer av en loop ändå.

Visa signatur

:€