Code: Select all
for n in `seq 100`; do out=""; case $n in (*0|*5) out=Buzz ;; esac; [ 0 = $(( $n % 3 )) ] && out=Fizz$out; echo ${out:-$n}; done
Code: Select all
for n in `seq 100`; do out=""; case $n in (*0|*5) out=Buzz ;; esac; [ 0 = $(( $n % 3 )) ] && out=Fizz$out; echo ${out:-$n}; done
Code: Select all
10 REM FIZZBUZZ SOLUTION BY CHRISTOPHER HAVEL, 2012
20 REM IMPLEMENTED IN QBASIC
30 PRINT
40 COUNT% = 0
50 COUNT% = COUNT% + 1
60 IF COUNT% MOD 3 = 0 THEN GOTO 100 ELSE GOTO 80
70 IF COUNT% MOD 5 = 0 THEN GOTO 120 ELSE GOTO 80
80 PRINT COUNT%
90 IF COUNT% = 100 THEN GOTO 140 ELSE GOTO 50
100 IF COUNT% MOD 5 = 0 THEN PRINT "FIZZBUZZ" ELSE PRINT "FIZZ"
110 IF COUNT% = 100 THEN GOTO 140 ELSE GOTO 50
120 IF COUNT% MOD 3 = 0 THEN PRINT "FIZZBUZZ" ELSE PRINT "BUZZ"
130 IF COUNT% < 100 THEN GOTO 50
140 PRINT
150 PRINT "ALL DONE!"
160 END
Speed aside, I think this is the best one-liner . Especially since it is POSIX, too .Ibidem wrote:POSIX sh:
Note that this uses 1 comparison (to determine divisibility by 5) and also one division; 15 is handled automatically, rather than as a special case.
Code: Select all
bacon -o -s -o -Os -o -fdata-sections -o -ffunction-sections -o -Wl,--gc-sections "$myfile"
By some reason, they still teach Basic (Pascal too) to programmers in some Universities here...starhawk wrote:But I'm old-fashioned
Code: Select all
10 REM FIZZBUZZ SOLUTION BY CHRISTOPHER HAVEL, 2012 20 REM IMPLEMENTED IN QBASIC 30 PRINT 40 COUNT% = 0 50 COUNT% = COUNT% + 1 60 IF COUNT% MOD 3 = 0 THEN GOTO 100 ELSE GOTO 80 70 IF COUNT% MOD 5 = 0 THEN GOTO 120 ELSE GOTO 80 80 PRINT COUNT% 90 IF COUNT% = 100 THEN GOTO 140 ELSE GOTO 50 100 IF COUNT% MOD 5 = 0 THEN PRINT "FIZZBUZZ" ELSE PRINT "FIZZ" 110 IF COUNT% = 100 THEN GOTO 140 ELSE GOTO 50 120 IF COUNT% MOD 3 = 0 THEN PRINT "FIZZBUZZ" ELSE PRINT "BUZZ" 130 IF COUNT% < 100 THEN GOTO 50 140 PRINT 150 PRINT "ALL DONE!" 160 END