Myślisz, że zarabiasz tyle, na ile zasługujesz? Zapraszamy do wzięcia udziału w anonimowej ankiecie.
show/hide this revision's text 3 Dodane wersje z rekurencją ogonową :)

Common Lisp:

;definicja funkcji
(defun fizz-buzz ()
  (loop
   for i from 1 to 100 do
   (when (= (mod i 3) 0) (format t "Fizz"))
   (when (= (mod i 5) 0) (format t "Buzz"))
   (when (not (or (= 0 (mod i 3)) (= 0 (mod i 5))))
     (format t "~D" i))
   (format t "~%")))

;uruchomienie
(fizz-buzz)

EDIT 10.01.2010 Zamiast skracania kodu proponuję wersję bez jawnej iteracji ;)

C++:

#include <iostream>

void fizz_buzz_tail(int arg)
{
    if(arg > 100)
    {
        return;
    }
    else if((arg % 15) == 0)
    {
        std::cout << "FizzBuzz" << std::endl;
    }
    else if((arg % 3) == 0)
    {
        std::cout << "Fizz" << std::endl;
    }
    else if((arg % 5) == 0)
    {
        std::cout << "Buzz" << std::endl;
    }
    else
    {
        std::cout << arg << std::endl;
    }

    fizz_buzz_tail(arg+1);
}

int main()
{
    fizz_buzz_tail(1);
    return 0;
}

Common Lisp:

(defun fizz-buzz-tail (i)
  (cond ((> i 100) (return-from fizz-buzz-tail))
         ((zerop (mod i 15)) (format t "FizzBuzz~%"))
         ((zerop (mod i 3)) (format t "Fizz~%"))
         ((zerop (mod i 5)) (format t "Buzz~%"))
         (t (format t "~D~%" i)))
  (fizz-buzz-tail (1+ i)))

(fizz-buzz-tail 1)

Oba programy działają w oparciu o rekurencję ogonową, więc wykonują się tak jak iteracja :).

show/hide this revision's text 2 from 0 -> from 1. Za mało spałem...

Common Lisp:

;definicja funkcji
(defun fizz-buzz ()
  (loop
   for i from 0 1 to 100 do
   (when (= (mod i 3) 0) (format t "Fizz"))
   (when (= (mod i 5) 0) (format t "Buzz"))
   (when (not (or (= 0 (mod i 3)) (= 0 (mod i 5))))
     (format t "~D" i))
   (format t "~%")))

;uruchomienie
(fizz-buzz)
show/hide this revision's text 1 [made Community Wiki]

Common Lisp:

;definicja funkcji
(defun fizz-buzz ()
  (loop
   for i from 0 to 100 do
   (when (= (mod i 3) 0) (format t "Fizz"))
   (when (= (mod i 5) 0) (format t "Buzz"))
   (when (not (or (= 0 (mod i 3)) (= 0 (mod i 5))))
     (format t "~D" i))
   (format t "~%")))

;uruchomienie
(fizz-buzz)