Mój szef * nie rozumie, dlaczego jej programiści reagują negatywnie na użytkowników zmieniających wymagania programu. Pomóż jej zrozumieć! Przy każdej odpowiedzi utwórz nowe wymaganie. Następnie napisz program / funkcję, która rozwiązuje to wymaganie i wszystkie wcześniejsze wymagania, w nowym języku programowania.
Przykłady
Użytkownik 1 publikuje pierwszą odpowiedź. Określa, że program musi wypisać „Witaj, świecie”. Tworzy program w Javie, który wyświetla „Witaj, świecie”.
Użytkownik 2 publikuje drugą odpowiedź. Określa, że program musi zaakceptować wejście n i wyjście n- tej liczby pierwszej, aż do liczby w języku max. Tworzy program w C ++, który akceptuje wejście n i wypisuje n- tą liczbę pierwszą, a wypisuje „Cześć, świecie”. Nie mogła stworzyć programu w Javie.
Użytkownik 3 publikuje trzecią odpowiedź. Podaje, że źródło programu nie może zawierać tekstu „Cześć”. Tworzy funkcję w Pythonie, która akceptuje dane wejściowe n, a następnie generuje n- tą liczbę pierwszą i „Hello, World”. nie wykorzystując w swoim źródle tekstu „Cześć”. Nie mógł stworzyć programu w Javie lub C ++.
Format odpowiedzi
#Answer # - <language name> [version, if pertinent]
Requirement: <rule>.
<code>
[explanations, encoding, TIO link, etc.]
Zasady odpowiedzi
Odpowiedź musi być zgodna z powyższym formatem lub podobnym.
Odpowiedzią może być program lub funkcja.
Odpowiedź musi spełniać wszystkie wymagania, aż do aktualnej odpowiedzi włącznie.
Ten sam użytkownik nie może opublikować dwóch odpowiedzi z rzędu.
Jeśli dwie odpowiedzi zostały opublikowane z tym samym numerem, jedna z późniejszych odpowiedzi powinna zostać usunięta.
Nie edytuj swojego wymagania, chyba że źle się popsułeś i nie opublikowano żadnych innych odpowiedzi.
Jeśli twoja odpowiedź jest niezgodna z twoją regułą i wszystkimi innymi regułami, jest nieważna. Spróbuj to naprawić, zanim ktoś inny opublikuje następną odpowiedź.
Różne wersje tego samego języka są liczone jako różne języki tylko wtedy, gdy program lub funkcja utworzona w jednej z wersji zachowuje się inaczej w innej wersji.
Odpowiedź może nie akceptować żadnych danych wejściowych, które nie są wymagane, i nie może generować niczego, co nie jest wymagane, z wyjątkiem koniecznych białych znaków. Jednak chociaż za kulisami program musi spełniać wszystkie „ukryte” (przed użytkownikiem) wymagania, może robić co tylko zechcesz, zwłaszcza jeśli musisz spełnić wymagania dotyczące czasu wykonania.
Zasady wymagań
Wymaganie musi określać tylko jedno wymaganie. Wymaganie to może być warunkowe, a jeśli wymaganie to wymaga danych wejściowych i / lub danych wyjściowych, można je uwzględnić.
Wymaganie nie może usuwać ani modyfikować wcześniejszych wymagań ani powodować konfliktów z nimi, ale może je rozszerzyć (określić, które).
Jeżeli wymóg ogranicza źródło ( ograniczony-source ), lub wymaga tekst w źródle, może usunąć tylko jeden ciąg znaków (np
0
,Hello
) lub wymagają jednolitego charakteru.Wymaganie nie może wymagać, aby źródło miało mniej niż 100 bajtów, nie wymagało określonego kodowania lub samo w sobie wykluczało większość popularnych języków.
Wymaganie może nie zmuszać źródła do zgodności z określonym wzorcem (na przykład rozpoczynanie każdej linii od określonego znaku lub (@Conor) mieszanie do określonej wartości) innej niż określona w ograniczonym źródle.
Jest to tworzenie łańcuchów odpowiedzi , więc wszystkie odpowiedzi bazują na poprzednich odpowiedziach. Ja i inni mogą postarać się zachować listę wszystkich wymagań. Aby wyświetlić odpowiedzi w kolejności, możesz sortować według najstarszych. Aby zobaczyć najnowszą odpowiedź, posortuj według najstarszych, a następnie przejdź do końca listy.
Jak wygrać (zmieniono na wstrzymanie głosowania):
Jeśli przez dwa tygodnie nie zostanie wysłana odpowiedź, wyzwanie się kończy, a wyniki zostaną obliczone. Wyniki zostaną obliczone poprzez zsumowanie łącznej liczby odpowiedzi każdego użytkownika, ale ważenie postów na podstawie tego, jak daleko są w łańcuchu (ponieważ późniejsze posty mają więcej wymagań, są trudniejsze).
Pseudo kod:
for each answer in user.Answers {
score += 1 + (answer.number / 100)
}
Przykład:
Sally ma trzy odpowiedzi. Opublikowała odpowiedź 5, odpowiedź 7 i odpowiedź 20.
Jej wynik będzie 1.05 + 1.07 + 1.2 = 3.32
. Gdyby to była prosta suma odpowiedzi, jej wynik wynosiłby 3, ale ważenie głębokości łańcucha nagradza trudniejsze odpowiedzi.
Zacząć:
Oto pierwszy wymóg, podany przez mojego szefa *:
Wymaganie 0: Program musi wypisać 0, zanim cokolwiek innego.
*powieściowy
Lista wymagań i języków
Pamiętaj, że może to być nieaktualne - spójrz na ostatnią opublikowaną odpowiedź bezpośrednio przed opublikowaniem odpowiedzi, aby upewnić się, że spełniasz wszystkie wymagania. Bardzo mi przykro, jeśli tworzysz znakomity program, tylko dla kogoś, kto go snipe - jeśli naprawdę naprawdę chcesz go opublikować, określ niekonkurujące.
Full (ale może nie prąd) Wymagania: Nie mogą zawierać
0
,*
lub]
w kodzie źródłowym, a nie można użyć złączenia na nowej linii wbudowanego polecenia. Wyprowadza0
, a następnie przyjmuje nieujemną liczbę całkowitąn
i wypisuje nowy wiersz, po którym następuje indeksn
Fibonacciego o indeksie 0 (może być1
indeksowany), następnie znak nowej linii, następnie ten sam sygnał wejściowy n do kwadratu, a następnie znak nowej linii, a następnien
pomnożony przez nowe dane wejściowem
, po których następuje nowa linia, po której10^B
, gdzieB
jest liczba bajtów w kodzie źródłowym, po której następuje nowa linia, po której następuje liczba pierwsza indeksun
th0
(może być także1
indeksowana), a następnie nowa linia, a następnie największy wspólny dzielnik ni im0: Program musi wyjść
0
przed czymkolwiek innym. Język: nie dotyczy
1: Źródło programu nie może zawierać0
. Język: 05AB1E
2: Program pobiera nieujemne liczby całkowiten
i wyświetla nowy wiersz, po którym następuje0
-indeksowana n-ta liczba Fibonacciego (może być1
indeksowana). Język: dc
3: Program wypisuje nowy wiersz, po którym następuje takie samo wejście don
kwadratu. Język: J
4: Program wyświetla nowy wiersz, po którym następujen
pomnożenie przez nowy wpism
. Język: Ohm
5: Program nie może zawierać*
(kod ASCII0x2A
). Język: Python 3
6: Program wyświetla nowy wiersz, a po nim10^B
, gdzieB
jest liczba bajtów w kodzie źródłowym. Język: Mathematica
7: Program wysyła linią, przezn
TH0
-indexed (może również być1
-indexed) liczbą pierwszą. Język: JavaScript (ES6)
8: Program nie używa wbudowanej funkcji dołączania do nowej linii, ale może korzystać z dowolnej innej wbudowanej funkcji łączenia. Język: Galaretka
9: Program wypisuje nowy wiersz, po którym następuje największy wspólny dzielnik n i m. Język: Scala
10: Program nie może zawierać]
. Język: Pyth
Aktualne wyniki (uporządkowane według pierwszego postu)
Okx : 1,01
R. Kap : 2,09
Conor O'Brien : 1,03
Nick Clifford : 1,04
Eric Rose : 1,05
Greg Martin : 1,06
Erik the Outgolfer : 2.18
math_junkie : 1.09
źródło
Odpowiedzi:
Odpowiedź 10 - Pyth
Wymaganie: Pobiera dwa wejścia,
n
(> = 0) im
. Wyjścia0
bez zastosowania0
,*
lub]
gdziekolwiek w kodzie źródłowym, a bez builtins do łączenia na nowej linii. Następnie wypisuje nową linię, po której następuje1
-indeksowana n-ta liczba Fibonacciego (może być0
indeksowana), następnie nowa linia, następnien
kwadrat, następnie nowa linia, następnien
pomnożona przezm
, następnie nowa linia, po której10^B
gdzieB
jest liczba bajtów w kodzie źródłowym, po której następuje nowa linia in
th1
-indexed (może być również0
-indexed) liczba pierwsza, a na końcu po nim nowa linia i największy wspólny dzielnik n i m.Tłumacz online
źródło
j
zamiastjb
, ponieważ odtąd będę używać wbudowanego dołączania do nowej linii.Odpowiedź 1 - 05AB1E
Wymagania: Drukuje
0
... bez0
kodu źródłowegoźródło
Odpowiedź 3 - J
Wymagania: Wyprowadza dane
0
bez0
kodu źródłowego, a następnie przyjmuje nieujemną liczbę całkowitąn
i wypisuje nowy wiersz, po którym następuje0
-indeksowanan
liczba Fibonacciego (może być1
indeksowana), a następnie nowy wiersz, po którym następuje to samo wejście don
kwadratu.Wypróbuj online!
źródło
Odpowiedź 4 - Ohm
Wymagania: Wyprowadza dane
0
bez0
kodu źródłowego, a następnie przyjmuje nieujemną liczbę całkowitąn
i wypisuje nowy wiersz, po którym następuje indeksn
Fibonacciego o indeksie 0 (może być 1 indeksowany), po czym następuje znak nowej linii, po której następuje takie samo wejście n do kwadratu, po którym następuje nowa linia, a następnien
pomnożona przez nową wartość wejściowąm
.źródło
Odpowiedź 2 - dc
Wymagania: Wyprowadza dane
0
bez0
kodu źródłowego, a następnie przyjmuje nieujemną liczbę całkowitąn
i wypisuje nowy wiersz, po którym następuje0
-indeksowanan
„liczba Fibonacciego” (może to być1
indeksowana).Wypróbuj online!
źródło
Odpowiedź 5 - Python 3
Wymagania: Wyprowadza 0 bez 0 w kodzie źródłowym, a następnie przyjmuje nieujemną liczbę całkowitą wejściową n i wypisuje nową linię, po której następuje n-ta liczba Fibonacciego o indeksie 0 (może być 1 indeksowana), a następnie nowa linia, po której następuje to samo wejście n do kwadratu, po którym następuje nowa linia, a następnie n pomnożone przez nową wartość wejściową m. Nie używaj znaku
*
, kodu ASCII 0x2A.źródło
Odpowiedź 6 - Matematyka
Wymaganie: W kodzie źródłowym podaje 0 bez 0 lub *, a następnie przyjmuje nieujemną liczbę całkowitą i wprowadza nową linię, po której następuje n-ta liczba Fibonacciego o indeksie 0 (może być 1 indeksowana), a następnie nowa linia, po której następuje to samo wejście n do kwadratu, po którym następuje nowa linia, następnie n pomnożone przez nową wejściową m, po której następuje nowa linia, a następnie 10 ^ B, gdzie B jest liczbą bajtów w kodzie źródłowym.
źródło
Odpowiedź 7 - JavaScript (ES6)
Wymagania: Funkcja, która pobiera dwa dane wejściowe, nieujemną liczbę całkowitą
n
i dowolną liczbęm
i zwraca ciąg znaków zawierający0
bez użycia0
nigdzie w kodzie źródłowym, a następnie znak nowej linii, po której następuje0
-indeksowanan
liczba Fibonacciego (może być1
indeksowana), a następnie znak nowej linii, następnien
kwadrat, następnie znak nowej linii, następnien
pomnożony przezm
bez użycia*
nigdzie w kodzie źródłowym, następnie znak nowej linii, następnie10^B
gdzieB
jest liczba bajtów w kodzie źródłowym, a na końcu po nim nowa linia in
th0
-indexed (może być także1
-indexed) liczba pierwsza.Test Snippet
Pokaż fragment kodu
źródło
String.fromCharCode(48)
na1-1
. Nie, żeby to naprawdę miało znaczenie ;-) (Ponadto w kodzie źródłowym są dwa zera, które można naprawić w ten sam sposób)Odpowiedź 8 - Galaretka
Wymagania: Funkcja, która pobiera dwa dane wejściowe, nieujemną liczbę całkowitą
n
i dowolną liczbęm
i zwraca ciąg znaków zawierający0
bez użycia0
nigdzie w kodzie źródłowym, a następnie znak nowej linii, po której następuje0
-indeksowanan
liczba Fibonacciego (może być1
indeksowana), a następnie znak nowej linii, następnien
kwadrat, następnie znak nowej linii, następnien
pomnożony przezm
bez użycia*
nigdzie w kodzie źródłowym, następnie znak nowej linii, następnie10^B
gdzieB
jest liczba bajtów w kodzie źródłowym, a na końcu po nim newline in
th0
-indexed (może być również1
-indexed) liczba pierwsza. Żadne wbudowane funkcje dołączania do nowej linii nie są dozwolone, ale dołączanie wbudowanych opcji jest nadal dozwolone.Wypróbuj online!
źródło
Odpowiedź 9 - Scala
Wymagania : Przyjmuje dwa wejścia,
n
(> = 0) im
. Dane wyjściowe0
bez użycia0
lub w*
dowolnym miejscu w kodzie źródłowym i bez wbudowanych funkcji dołączania do linii nowej. Następnie wypisuje znak nowej linii, po której następuje1
-indeksowana n-ta liczba Fibonacciego (może być0
indeksowana), następnie linia nowa, następnien
kwadrat, następnie linia nowa, następnien
pomnożona przezm
, następnie linia nowa, po której10^B
gdzieB
jest liczba bajtów w kodzie źródłowym, po której następuje nowa linia in
th1
-indexed (może być również0
-indexed) liczba pierwsza, a na końcu po nim nowa linia i największy wspólny dzielnik n i m.Wypróbuj tutaj
źródło