streszczenie
Zaimplementuj FizzBuzz w Pythonie, używając jak najmniejszej liczby tokenów.
Wyzwanie
Napisz program, który drukuje liczby dziesiętne od 1 do 100 włącznie. Ale dla wielokrotności trzech wydruków „Fizz” zamiast liczby i dla wielokrotności pięciu wydruków „Buzz”. W przypadku liczb, które są wielokrotnością zarówno trzech, jak i pięciu, należy wydrukować „FizzBuzz”. Programy muszą być napisane w niektórych wersjach Pythona.
Aby uzyskać więcej informacji, zobacz 1, 2, Fizz, 4, Buzz
Punktacja
Twój wynik będzie równy liczbie węzłów w abstrakcyjnym drzewie składni twojego kodu, zgłoszonym przez ten program dla Python 3 lub ten program dla Python 2 . Aby uruchomić programy, podaj nazwę pliku swojego kodu jako argument wiersza poleceń programu. Na przykład:
python simple_counter.py fizzbuzz.py
Programy te oparte są na module ast Pythona . Jeśli masz jakieś trudności, daj mi znać.
Aby zapobiec trywialnym rozwiązaniom, takim jak wykonywanie długiego łańcucha za pomocą rzeczywistego programu lub zakodowanie wyjścia, istnieją pewne dodatkowe ograniczenia:
Żeton w twoim kodzie nie może być dłuższy niż 15 znaków. Powyższe programy sprawdzą to wymaganie. Należy pamiętać, że w celu ułatwienia implementacji powyższe programy liczą komentarze jako tokeny.
Wykonanie / ocena kodu jest zabroniona.
Jeśli masz pytania, czy coś jest dozwolone, zapytaj mnie.
Heurystyka punktacji
Następujące reguły zazwyczaj wystarczają do obliczenia wyniku twojego programu:
Sprawozdanie blokowe są punkty 1:
if
,for ... in ...
,while
,else
, itd.Jednostkowe sprawozdanie to 1 punkt
print
w Pythonie 2break
,pass
itdZmienne mają 2 punkty
Single-symboliczne literały są 1 punkt
2131
,"Hello, world!"
,True
Funkcje to 3 punkty (2 za użycie zmiennej, 1 dodatkowy):
print
w Python 3range
itd.Operatorzy są 2 punkty:
+
,*
,%
,and
,not
, itd.=
wynosi 1 punktZwiększona zadaniem jest: 2 punkty
+=
,|=
itpNawiasy, wcięcia itp. Mają 0 punktów.
Linia zawierająca wyrażenie, w przeciwieństwie do przypisania lub wyrażenia, wynosi + 1 punkt.
Posiadanie kodu w ogóle to 1 punkt.
Wyzwanie:
Najniższy wynik wygrywa. Powodzenia!