Tråd: Fizzbuzz!
View Single Post
:(){ :|:& };:
tripflag's Avatar
568
Da starter vi med litt ternary-festligheter og aritmetikk i C++

Kode

/*/../usr/bin/env echo compiling...;T=$(/usr/bin/env mktemp);/usr/bin/env g++ "$0" -o "$T" && ("$T";rm "$T");exit;*/

#include <iostream>
typedef unsigned char uc;
using namespace std;

int main(int argc, char **argv)
{
    uc b[2] = { '0','z' };
    uc c[3] = { 'f','i','G' };
    uc d[3] = { 'b','u','P' };
    uc e[4] = { c[0], c[1], d[0], d[1] };
    for (int n=1; n<101; n++)
    {
        b[1]=n;
        int a=0;
        if (!(n%2)) a+=1;
        if (!(n%3)) a+=2;
        uc *v=a==0?b:a==1?c:a==2?d:e;
        for (a=0;a<2;a++)
        {
            if (v[0]<'a')
            {
                std::cout << (int)v[1];
            }
            else
            {
                std::cout << v[a*2] << v[a*2+1];
                std::cout << (uc)(c[0]+5*4);
                std::cout << (uc)(d[1]+5);
            }
            if (v[0]<'a' || v[2]<'a') break;
        }
        cout << endl;
    }
}
Som bonus kan koden startes som et shellscript, saa lenge man husker chmod +x:
./fizzbuzz.cpp
Sist endret av tripflag; 18. januar 2014 kl. 19:15.