Często zapominam, co chciałem powiedzieć, gdy nauczyciel wzywa mnie do zabrania głosu. Czy możesz zrobić ze mnie narzędzie do rozwiązania tego?
Wymagania:
- Program musi wykonać pętlę w następujący sposób:
- Najpierw weź udział
- Jeśli dane wejściowe są puste, wydrukuj ostatnie zapisane pytanie.
- W przeciwnym razie zapisz dane wejściowe jako pytanie.
Uwagi:
- Dane wejściowe nigdy nie będą puste, jeśli nie zostaną zapisane żadne pytania.
Wyjaśnienie: Program nie musi przechowywać wielu pytań. Początkowo chciałem, aby przechowywał wiele, ale zmieniłem to, gdy wiele osób źle zrozumiało pytanie.
Pamiętaj, to jest kodowanie w golfa , więc wygrywa kod z najmniejszą liczbą bajtów.
Odpowiedzi:
Perl,
131714 +1 = 15 bajtów+1 za
-n
flagę (zapisane 4 bajty dzięki @Dada)Dopóki dane wejściowe nie są równe znakowi powrotu karetki, zapisuje dane wejściowe w
$;
. Jeśli jest równy zwrotowi karetki, drukuje to, co już jest$;
.Zakłada się, że wszystkie dane wejściowe można scharakteryzować jako pytania, nawet jeśli gramatycznie nie są takie.
źródło
ne
zamiasteq
(teraz to nie działa)././
zamiast$/ne$_
;-)05AB1E,
121110 bajtówDzięki @daHugLenny i @Adnan za 1 bajt!
Dzięki @Emigna za 1 bajt!
źródło
®
i©
zX
aU
, nie trzeba backslash.Haskell, 49 bajtów
Jak to działa: zacznij od
g ""
. Parametrems
funkcjig
jest pytanie w sklepie.g
odczytuje następny wiersz ze standardowego wejścia i przekazuje go (a także s) do#
. Jeśli linia jest pusta,#
drukuje sklep i dzwonig
ponownie. Jeśli linia nie jest pusta,g
jest wywoływana z linią jako nowy sklep.źródło
JavaScript,
363431 bajtówNieskończona pętla nieustannie prosi o dane wejściowe i zapisuje je
b
. Jeśli dane wejściowe nie są puste, są one następnie przechowywane, wa
przeciwnym raziea
drukowana jest wartość parametru .Zaoszczędź 2 bajty dzięki @ETHproductions
źródło
1
, a drugi, przechodzącb?a=b:alert(a)
do ostatniej sekcji w pętli for (tj.for(a=0;;b?a=b:alert(a))b=prompt()
)a=0
nie jest to konieczne. Ponieważ dane wejściowe mogą być puste tylko wtedy, gdy zapisane są pytania,a
nie można się do nich odwoływać, jeśli nie zostały przypisane.Mathematica, 44 bajty
Pełny program Znak Unicode to U + 221E INFINITY dla
\[Infinity]
.źródło
Python 3, 31 bajtów
Wypróbuj to!
-1 bajt dzięki Flp.Tkc
źródło
siatka, 12 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
Pyke, 6 bajtów
Wypróbuj tutaj!
źródło
Python3 - 49 bajtów
źródło
NameError: name 'b' is not defined
b=input()
. Dzięki!Python 3, 34 bajty
źródło
Python 3, 60 bajtów
źródło
CMD, 37 bajtów
Niestety
set
nie przyjmuje pustych danych wejściowych :(w nazwach plików
c.cmd
lubw dowolnym pliku. Działający (użyj
-
jako pusty):źródło
set/p
nigdy nie spowoduje, że zmienna będzie pusta, więc przynajmniej potrzebujeszset a=
w pierwszym wierszu; też myślę, że masz na myśliset b=%a%
.APLX, 19 bajtów
Wyjaśnienie:
źródło
C,
7363 bajtówDo obsługi logiki używa tylko 1 bufora i jednego znaku. Jeśli użytkownik nic nie wprowadzi, tylko pierwszy znak w buforze zostanie zastąpiony przez
'\0'
, w takim przypadku zostanie przywróconyx
i wydrukowany, w przeciwnym razie skopiuj pierwszą literę dox
późniejszego użycia.Poprzedni kod:
źródło
Java 7,
189187178 bajtów ..-9 bajtów przy użyciu
new java.util.Scanner
bezpośrednio, dzięki @cliffroot .Prawdopodobnie po raz pierwszy użyłem
do-while
w zawodach codegolf.Gdy funkcje są dozwolone zamiast programów, jest to 135 bajtów (wciąż wiele razy więcej niż większość innych odpowiedzi ..)
źródło
void c(){for(String s="",x;(x=new java.util.Scanner(System.in).nextLine())!=null;)if(x.isEmpty())System.out.println(s);else s=x;}
for
albowhile
gdzieś? .. Co to jest(x=new java.util.Scanner(System.in).nextLine())!=null;)
?void c(){for(String s="",x;for(x=new java.util.Scanner(System.in).nextLine())!=null;)if(x.isEmpty())System.out.println(s);else s=x;}
i jest tak naprawdę 1 bajt dłużej niż wersja zdo-while
-void c(){String s="",x;do{x=new java.util.Scanner(System.in).nextLine();if(x.isEmpty())System.out.println(s);else s=x;}while(1>0);}
sed, 10 bajtów
Wyjaśnienie:
Miło widzieć egzoteryczny (tzn. „Nie ezoteryczny”) język łączący się z niektórymi językami golfa!
źródło