10 9 8 7 6 5 4 3 2 1… Drukuj 2016


12

Jako efekt uboczny mojego wyzwania w Puzzling , Twoim celem jest wyjście 2016.

Zasady:

  • Musisz podać liczby 10 9 8 7 6 5 4 3 2 1w tej kolejności. Można ich używać jako pojedynczych liczb całkowitych lub konkatenować razem (jak 1098), ale 10nie można ich dzielić na 1i 0- między cyframi nie może być żadnych znaków. Zauważ, że w niektórych językach 10może nie przedstawiać literału całkowitego 10, co jest dopuszczalne.
  • Twój kod nie może zawierać żadnych innych liczb ani predefiniowanych zmiennych liczbowych lub stałych (więc Tw Pyth nie jest dozwolony, ponieważ jest stałą numeryczną).
  • Musisz obliczyć 2016 za pomocą liczb. Po prostu wyprowadzanie 2016bez wykonywania jakichkolwiek operacji na wymaganych liczbach (na przykład przez dekodowanie zakodowanego łańcucha składającego się tylko z znaków alfabetycznych) jest niedozwolone. Wyprowadzanie 2016w kawałkach (np. 20Wtedy 16) również nie jest dozwolone; musisz mieć jedno wyjście składające się z wartości liczbowej 2016.
  • Prawidłowa odpowiedź z najmniejszą liczbą bajtów wygrywa.

3
@nicael Jestem pewien, że rozwiązanie zagadki zostało zakończone. Mieliśmy kilka takich „operatorów wstawiania, aby rozwiązać równanie”, ale są wyjątkowo trudne do wyszukania.
Martin Ender

1
Poprzednia wersja (2) była bardziej interesująca. Nowością jest właśnie drukowanie łańcucha, obliczenia zostały już wykonane w zagadkowym pytaniu ...
nicael

1
Tylko kilka pytań w oparciu o to, co widzę na obecnym pytanie: 1) możemy obliczyć 20a 16i wydrukować je jeden po drugim, czy też obliczona liczba TRZEBA 2016 przed drukowaniem? 2) Czy funkcje są dozwolone? 3) Czy dozwolone jest łączenie cyfr? np. 1098(zakładam, że tak w poprzednich komentarzach, ale tylko w celu potwierdzenia) 4) Czy „obliczanie 2016 za pomocą liczb całkowitych” oznacza, że ​​nigdy nie możemy mieć liczb zmiennoprzecinkowych w kroku pośrednim? np. czy mogę uzyskać pierwiastek kwadratowy z liczby i zaokrąglić w dół?
Sp3000,

1
5) Co się stanie, jeśli mam język, w którym „10” nie jest traktowane jako liczba dziesiąta, ale raczej ten, po którym następuje zero i nie było mowy o tym? Czy taki język jest zdyskwalifikowany? (przykładowy język: Befunge) 6) Czy możemy użyć predefiniowanej zmiennej liczbowej zamiast 10, np. T987654321?
Sp3000,

@ Sp3000 1 nr 2 nr 3 Tak. 4 Pływaki są OK, o ile nie złamiesz żadnych innych zasad. 5 10musi być uwzględnione, więc musisz jakoś sobie z tym poradzić. 6 Tak długo, jak się 10pojawia wcześniej T.
rybo111

Odpowiedzi:


22

Galaretka , 17 15 14 bajtów

109876:54+3_21

Wypróbuj online!

Jak to działa

109876:54+3_21

109876            Initialize the left argument as 109876.
      :54         Perform integer division by 54, yielding 2034.
         +3       Add 3, yielding 2037.
           _21    Subtract 21, yielding 2016.

8

Sześciokąty, 61 bajtów

Nie wygram, ale chciałem po prostu rzucić wyzwanie w Hexagony.

To używa innej metody niż inne odpowiedzi (znacznie gorzej). Uwzględnia niektóre czynniki z 2016 r. (2,3,6,7,8) i mnoży je wszystkie razem.

Zminimalizowane:

\109.8/7}_=\"6<}{>...$_5_4/*!@...../}3.."2\/="*=}<*...$1>"*"/

Unminified:

    \ 1 0 9 .
   8 / 7 } _ =
  \ " 6 < } { >
 . . . $ _ 5 _ 4
/ * ! @ . . . . .
 / } 3 . . " 2 \
  / = " * = } <
   * . . . $ 1
    > " * " /

Wyjaśnienie już wkrótce;


5
Wyjaśnienie już wkrótce; ” Myślę, że inaczej rozumiemy „wkrótce”. ; P
Kevin Cruijssen

1
@KevinCruijssen Ups, zupełnie o tym zapomniałem. ... A teraz nie rozumiem, jak to działa. Wspaniały.
Niebieski

5

Pyth, 16 bajtów

+/109876 54-3 21

Czy dzielenie liczb całkowitych, a następnie dodaje (3-21).

Wypróbuj tutaj .


4

TI-BASIC, 17 15 bajtów

int(109876/54-√(321

To używa metody @ nicael.

17 bajtów:

10+9*8-7+654*3-21

To rozwiązanie Puzzling można bezpośrednio przetłumaczyć na TI-BASIC.


1
Obowiązuje również w Japt i prawdopodobnie w niektórych innych.
ETHproductions

1
Działa również w PowerShell i Mathematica (Wolfram) i wyobrażam sobie wiele, wiele innych. I prawdopodobnie działa w kilkudziesięciu innych z trywialnymi modyfikacjami.
AdmBorkBork


Jeśli chcesz wziąć inne języki, usunę jeden z moich wiki wiki.
Addison Crump

3

Japt, 17 16 bajtów

Â(109876/54-321q

Nienawidzę tego 17. Prawdopodobnie znajdzie inne rozwiązanie. YAYZ.

Wyjaśnienie:

  • 321q jest pierwiastkiem kwadratowym z 321.
  • ~~ liczba pięter.

Wypróbuj online!


Â== ~~:-)
ETHproductions

109876/54-321¬fjest 15 :-D
ETHprodukcje

@Eth, ale f nie działa, nie?
nicael

To powinno zostać naprawione. Ale tłumacz jest teraz w trakcie prac konserwacyjnych, natychmiast go odzyskam.
ETHproductions

109876/54-321q)fteraz działa. Druga sugestia nie.
ETHproductions


3

pne, 14

109876/54+3-21

Nic ekscytującego tutaj - pożycza z innych odpowiedzi.


1
Odpowiednik dc 109876 54/3+21-potrzymuje 16 punktów, ale nie gwarantuje własnej odpowiedzi.
Toby Speight

2

Haskell, 31 bajtów

[10,9*8*7+const 6 5..]!!4+3*2*1

Nie najkrótszy, 10+9*8-7+654*3-21jak widać w innych odpowiedziach, działa również w Haskell, ale coś innego.

To tworzy listę zaczynającą się od 10i 9*8*7+6 = 510, więc przesunięcie dotyczy 500następujących elementów. Cała lista jest [10,510,1010,1510,2010,2510 ...]. Wybieramy 4thelement (oparty na indeksie 0), tj. 2010I dodajemy 3*2*1 = 6. Voilà.

Używam, const 6 5 = 6aby pozbyć się tego, 5co nie jest potrzebne.


2

Python 2, 20 bajtów

print 109876/54+3-21

Znów to samo nudne 2016.(740). Wykorzystuje fakt, że jeśli nie masz liczby dziesiętnej w wyrażeniu, zwraca liczbę całkowitą.


1

> <> (ryba), 18 bajtów

10987**r65r4*n;321

wyjaśnienie:

mnoży 9 8 i 7 razem, aby uzyskać 504, odwraca stos i odwraca go ponownie tuż przed dodaniem 4, następnie mnoży 504 i 4, aby uzyskać 2016. Następnie drukuje liczbę i kończy program przed ostatnimi 3 liczbami (mógłbym to zrobić potem też bez różnicy, jeśli ma to zasadnicze znaczenie).


1

Matematyka ++ , 17 bajtów

_(109876/54)+3-21

Właściwie to się drukuje 2016.0. Ale tak naprawdę nie ma sposobu, aby wydrukować dokładny ciąg 2016w tym języku.

Tutaj również działałoby 17-bajtowe rozwiązanie TI-BASIC.


1

Polyglot, 17 bajtów

10+9*8-7+654*3-21

Ten kod, po raz pierwszy użyty w odpowiedzi TI-BASIC Thomasa Kwa , działa również w:

  • AppleScript (pełny program)
  • bc (pełny program)
  • Math ++ (wyrażenie lub pełny program)
  • Matematyka (funkcja, dlatego nie jest poprawna)
  • PowerShell (pełny program)
  • Japt (pełny program)
  • JavaScript (wejście konsoli, dlatego nie jest poprawne) Wymaga drugiej weryfikacji
  • Perl 5 (funkcja, dlatego nie jest poprawna). Wymaga drugiej weryfikacji
  • Haskell (funkcja, dlatego nie jest ważna)
  • Python REPL (wyrażenie, więc środowisko REPL jest potrzebne, aby uzyskać wynik)

1
I o co chodzi?
nicael

@nicael Idę --- planuję (chyba, że ​​Thomas Kwa również chce dodać inne odpowiedzi do swojego), aby dodać wszystkie odpowiedzi, które dotyczą tej odpowiedzi (oprócz TI-BASIC), które mogę znaleźć. Oznaczone jako Społeczność, aby inni mogli wnieść swój wkład.
Addison Crump

1
Dlaczego „funkcja, a zatem nieprawidłowa”, zauważa? Funkcje są domyślnie dozwolone.
nimi

5
Nie znam innych języków, ale 10+9*8-7+654*3-21nie jest ani JavaScript, ani funkcją Perla.
Dennis

1
@ Sp3000: Oh te unieważniające zmiany reguł ...
nimi



1

PHP, 27 bajtów

<?=~~(109876/54+3-21);

(22 bajty) było zbyt nudne,

więc użyłem od 10 do 9 jako osobnych liczb:

<?=10*(9-8+7-6),5+4-3+2<<1;

inne rozwiązania, głównie z małymi kodami:

30: <?=10**(9+8-7-6)/5+4*3+(2<<1);
30: <?=10*trim(9*8,7),6+5+4+3-2*1;
29: <?=10*trim(9*8,76),5*4-3-2+1;
31: <?=10*trim(9*8,765),4+(3*2<<1);
31: <?=10*trim(9*8,765),4*3+(2<<1);
32: <?=ceil(1098*76/54)+321+ord(~j);
33: <?=(10<<9)/876*543/M_PI*2-M_E&~1;

0

Droga Mleczna 1.6.5 , 28 25 bajtów

10+9*(8)7;^*6*5/4*3/2*A!1

Wyjaśnienie

10+9*                      ` perform 10*9 (leaves 90 at TOS)
     (8)7;^*               ` get rid of 8 and multiply the TOS by 7
            6*5/4*3/2*A    ` perform TOS*6/5*4/3*2 (leaves 2016 at TOS)
                       !   ` output the TOS
                        1  ` push 1 to the stack




0

C 37 bajtów

main(){printf("%d",109876/54+3-21);}

Ten sam motyw, co wielu obecnych.



0

JavaScript (ES6), 21 bajtów

f=

_=>~~(109876/54+3-21)

console.log(f())

Jeśli „odliczanie” osiągnęło wartość 0, można to zrobić w 19 bajtach.

f=
_=>109876/54+3-21|0
console.log(f())

I biorąc pod uwagę, że jest to teraz 2017, można to również zrobić w 21 bajtach:

f=
_=>-~(109876/54+3-21)
console.log(f());

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.