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
printw Pythonie 2break,passitdZmienne mają 2 punkty
Single-symboliczne literały są 1 punkt
2131,"Hello, world!",TrueFunkcje to 3 punkty (2 za użycie zmiennej, 1 dodatkowy):
printw Python 3rangeitd.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!