Interjú kérdés, aminek semmi értelme, de 10-ből 9-en beugranak és nem a legoptimálisabb megoldást adják :-)
Írj egy programot, ami 1-től 100-ig kiírja a számokat. Ha a szám osztható hárommal, akkor írja ki a szám helyett, hogy Fizz, ha osztható öttel, akkor Buzz, ha mind a kettővel osztható, akkor FizzBuzz.
Elsőre ezt a megoldást adtam, ami nem rossz, de nem is tökéletes ;-)
DECLARE @i int = 1;
WHILE @i < 101
BEGIN
IF @i%3 = 0 AND @i%5 = 0
PRINT 'FizzBuzz';
ELSE IF @i%3 = 0
PRINT 'Fizz';
ELSE IF @i%5 = 0
PRINT 'Buzz';
ELSE
PRINT CAST(@i AS varchar);
SET @i += 1;
END
Aztán gondolkoztam… hahaha. Ez már sokkal jobb. Amit kihagytam: ami 3-mal és 5-tel is osztható, az ugye osztható 15-tel is.
DECLARE @i int = 1;
WHILE @i < 101
BEGIN
IF @i%15 = 0
PRINT 'FizzBuzz';
ELSE IF @i%3 = 0
PRINT 'Fizz';
ELSE IF @i%5 = 0
PRINT 'Buzz';
ELSE
PRINT CAST(@i AS varchar);
SET @i += 1;
END