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.