Jeśli Ci się spodoba, rozważ udział w:
Wykonaj 12 urywków / wyrażeń w tym samym języku, które dają odpowiednio cyfry od 0 do 10 i 42, ale bez pisania literowych danych liczbowych, łańcuchowych lub znaków.
Wbudowane dane, takie jak PI()
i ALPHABET()
, są w porządku, podobnie jak np. Stałe U, X, Y, Z i A w CJam oraz BLEND, AKORD, CENTRALNY, PRZERWA i LINIE.
Każdy fragment musi być w stanie samodzielnie działać, tzn. Nie może być od siebie zależny. Jednak wewnątrz jednego fragmentu możesz przypisać zmienną i używać jej dowolnie, o ile odwołujesz się do niej bezpośrednio po nazwie, a nie poprzez ciąg znaków zawierający jej nazwę.
Wszystkie fragmenty muszą być poprawne na komputerze osoby przesyłającej w momencie przesyłania (zgodnie z raportem SE), ale nie mogą opierać się na nietypowych lokalnych warunkach, takich jak liczba plików w katalogu, dokładna data lub godzina lub określone dane wprowadzone przez użytkownika .
Przykłady prawidłowych fragmentów
3: INT(LOG10(YEAR(TODAY())))
ponieważ pozostaje prawdą w dającej się przewidzieć przyszłości
4: CUBICROOT(LEN(CHARACTERSET()))
ponieważ zestaw znaków 256 liter jest bardzo powszechny
8: SQRT(SYSTEMTYPE())
ponieważ systemy 64-bitowe są bardzo powszechne
Przykłady nieprawidłowych fragmentów
5: LEN(USERNAME())
ponieważ większość ludzi nie używa „Admin” jako loginu :-)
9: LOG10(SYSTEMMEMORY())
ponieważ działa tylko w systemach z dokładnie 1 GB pamięci
42: CODE("*")
ponieważ zawiera literał ciąg / znak
Wynik każdego fragmentu musi skutkować faktyczną liczbą (wartość, liczba całkowita, liczba zmiennoprzecinkowa itp.), Której można użyć do dalszych obliczeń w tym samym języku co fragment kodu, tj. Nie może to być ciąg tekstowy reprezentujący tę liczbę.
Dozwolone są tylko języki oparte na znakach.
Wynik to łączna liczba bajtów wszystkich 12 urywków łącznie. Nowe linie oddzielające fragmenty nie są liczone.
Pamiętaj, że powyższe zasady mogą uniemożliwić udział niektórych języków, nawet jeśli są one ukończone.
FAQ
P Czy programy mogą akceptować jakiekolwiek dane wejściowe? Tak, ale nie może po prostu poprosić o wejście i wpisać odpowiedni numer.
P Czy dozwolone są cyfry fizyczne (bez danych)? Tak, np .
LOG10()
P Czy symbole w Rubim liczą się jako literały? Tak.
P Czy wynik zawiera znaki nowej linii między każdym fragmentem? No.
P Czy TI-BASIC „oparty na znakach” jest wystarczający, aby był ważny? Tak.
P Czy fałsz i prawda są liczone jako literały liczbowe?
O Nie, są do zaakceptowania.
P Czy możemy użyć literału liczbowego do wywołania funkcji, jeśli jest to jedyny sposób, a liczba nie wpływa na wynik funkcji? Tak, jeśli to jest normalny sposób pisać kod w języku polskim.
P Mój język zakłada, że na początku każdego programu / wyrażenia jest [coś]. Czy muszę to uwzględnić, czy moje fragmenty powinny po prostu działać, jeśli zostaną umieszczone w środku programu / wyrażenia?
A Powinny po prostu działać w środku programu / wyrażenia.
P: Co z literałami regularnymi? Zabronione, z wyjątkiem języków zrobić tylko regexes.
P Czy akceptowalny jest jeden fragment kodu, który mógłby wydrukować wszystkie podane liczby?
O Nie, muszą być one odrębne i wzajemnie niezależne.
P Czy mogę założyć płytę kotłową podobną int main() {}...
lub równoważną? Tak.
P Jakie typy danych wyjściowych są dozwolone?
A Dowolny typ danych liczbowych, taki jak int, float itp.
P Czy muszę wydrukować wynik każdego fragmentu?
O Nie, udostępnienie wyniku do późniejszego wykorzystania wystarczy.
P Czy dozwolone są wstępnie ustawione zmienne?
A Tak i zostaną zresetowane (jeśli zostaną zmienione) dla każdego fragmentu.
P Czy π i e są uważane za literały liczbowe?
A Nie, możesz ich użyć.
P Czy mogę zwrócić 4 i 2 w różnych komórkach dla 42?
O Nie, muszą być połączone jako jeden numer.
Q Bajty lub postacie? Bytes, ale można wybrać dowolną stronę kodową.
P Czy można stosować funkcje stałe i wstępnie ustawione zmienne, takie jak J 9:
, faktycznie 9
i Pretzel 9
?
A Tak, jeśli słownictwo jest skończone (19 dla J, 10 dla Faktycznie i Precla).