10 9 8 7 6 5 4 3 2 1 ... Cetak 2016

12

Sebagai putaran dari tantangan saya ke Puzzling , tujuan Anda adalah menghasilkan 2016.

Aturan:

  • Anda harus memasukkan angka 10 9 8 7 6 5 4 3 2 1dalam urutan itu. Mereka dapat digunakan sebagai bilangan bulat individu atau digabung bersama (seperti 1098), tetapi 10tidak dapat dipisahkan menjadi 1dan 0- tidak ada karakter (s) dapat hadir di antara digit. Perhatikan bahwa, dalam beberapa bahasa, 10mungkin sebenarnya tidak mewakili integer literal 10, yang dapat diterima.
  • Kode Anda tidak boleh mengandung angka lain atau variabel angka atau konstanta yang telah ditentukan sebelumnya (jadi TPyth tidak diperbolehkan, karena itu adalah konstanta numerik).
  • Anda harus menghitung 2016 menggunakan angka. Cukup mengeluarkan 2016tanpa melakukan operasi apa pun pada angka yang diperlukan (misalnya, dengan mendekode string yang disandikan yang hanya terdiri dari karakter alfabet) tidak diperbolehkan. Mengeluarkan 2016dalam jumlah banyak (seperti 20, lalu 16) juga tidak diperbolehkan; Anda harus memiliki satu output yang terdiri dari nilai numerik 2016.
  • Jawaban yang valid dengan byte paling sedikit menang.
rybo111
sumber
3
@nicael Saya cukup yakin memecahkan teka-teki telah dilakukan. Kami telah menghadapi beberapa tantangan "operator insert untuk menyelesaikan persamaan", tetapi sulit untuk dicari.
Martin Ender
1
Revisi sebelumnya (2) sebenarnya lebih menarik. Yang baru baru saja mencetak string, perhitungan sudah dibuat dalam pertanyaan membingungkan Anda ...
nicael
1
Hanya beberapa pertanyaan berdasarkan apa yang saya lihat pada pertanyaan saat ini: 1) Bisakah kita menghitung 20dan 16dan mencetaknya satu demi satu atau apakah jumlah kebutuhan yang dihitung menjadi 2016 sebelum mencetak? 2) Apakah fungsi diizinkan? 3) Apakah rangkaian angka diperbolehkan? misalnya 1098(saya berasumsi ya dengan komentar sebelumnya, tetapi hanya untuk mengonfirmasi) 4) Apakah "menghitung 2016 menggunakan bilangan bulat" berarti bahwa kita tidak akan pernah dapat mengapung di mana pun dalam langkah perantara? misalnya, bisakah saya kuadratkan angka dan dibulatkan?
Sp3000
1
5) Apa yang terjadi jika saya memiliki bahasa di mana "10" tidak diperlakukan sebagai nomor sepuluh, melainkan yang diikuti oleh nol dan tidak ada jalan lain? Apakah bahasa seperti itu didiskualifikasi? (contoh bahasa: Befunge) 6) Bisakah kita menggunakan variabel angka yang telah ditentukan di tempat 10, misalnya T987654321?
Sp3000
@ Sp3000 1 No. 2 No. 3 Ya. 4 Mengapung tidak masalah selama Anda tidak melanggar aturan lain. 5 10harus disertakan sehingga Anda harus mengatasinya. 6 Selama 10muncul sebelumnya T.
rybo111

Jawaban:

22

Jelly , 17 15 14 byte

109876:54+3_21

Cobalah online!

Bagaimana itu bekerja

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.
Dennis
sumber
8

Hexagony, 61 byte

Tidak akan menang, tetapi saya hanya ingin melakukan tantangan di Hexagony.

Ini menggunakan metode yang berbeda dari jawaban lain (jauh lebih buruk). Dibutuhkan beberapa faktor tahun 2016 (2,3,6,7,8) dan melipatgandakan semuanya.

Diperkecil:

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

Tidak dijinakkan:

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

Penjelasan segera hadir;

Biru
sumber
5
" Penjelasan segera datang; " Saya pikir kita memiliki pemahaman yang berbeda tentang 'segera'. ; P
Kevin Cruijssen
1
@KevinCruijssen Whoops, saya benar-benar lupa tentang ini. ... Dan sekarang saya tidak mengerti cara kerjanya lagi. Bagus.
Biru
5

Pyth, 16 byte

+/109876 54-3 21

Apakah pembagian integer, lalu tambahkan (3-21).

Coba di sini .

lirtosiast
sumber
4

TI-BASIC, 17 15 byte

int(109876/54-√(321

Ini menggunakan metode @ nicael.

17 byte:

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

Solusi dari Puzzling ini dapat langsung diterjemahkan ke dalam TI-BASIC.

lirtosiast
sumber
1
Juga berlaku di Japt, dan mungkin beberapa lainnya.
ETHproduk
1
Juga bekerja di PowerShell, dan Mathematica (Wolfram), dan saya akan membayangkan banyak, banyak lainnya. Dan mungkin bekerja di banyak lagi dengan modifikasi sepele.
AdmBorkBork
Solusi polyglot yang bagus
TanMath
Jika Anda ingin mengambil bahasa lain, saya akan menghapus satu komunitas wiki saya.
Addison Crump
3

Japt, 17 16 byte

Γ‚(109876/54-321q

Saya benci ini 17. Mungkin akan menemukan solusi lain. YAYZ.

Penjelasan:

  • 321q adalah akar kuadrat dari 321.
  • ~~ lantai nomor itu.

Cobalah online!

nicael
sumber
Γ‚== ~~:-)
ETHproductions
109876/54-321Β¬fadalah 15 :-D
ETHproduk
@ Tapi tetapi f tidak berhasil, bukan?
nicael
Itu harus diperbaiki. Tetapi penerjemah sedang dalam perbaikan saat ini, saya akan mengembalikannya sebentar.
ETHproduk
109876/54-321q)fsekarang berfungsi. Saran lainnya tidak.
ETHproduk
3

Matlab / Oktaf, 23 byte

(10-9+8-7)^(6-5+4)*3*21

Cobalah online

Luis Mendo
sumber
3

bc, 14

109876/54+3-21

Tidak ada yang menarik di sini - meminjam dari jawaban lain.

Trauma Digital
sumber
1
109876 54/3+21-pSkor setara dc 16, tetapi tidak menjamin jawaban sendiri.
Toby Speight
2

Haskell, 31 byte

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

Bukan yang terpendek, 10+9*8-7+654*3-21seperti terlihat dalam jawaban lain bekerja di Haskell juga, tetapi sesuatu yang berbeda.

Ini membangun daftar dimulai dengan 10dan 9*8*7+6 = 510, jadi offset 500untuk elemen-elemen berikut. Seluruh daftar adalah [10,510,1010,1510,2010,2510 ...]. Kami memilih 4thelemen (berbasis indeks 0), yaitu 2010dan menambahkan 3*2*1 = 6. Voa.

Saya gunakan const 6 5 = 6untuk menyingkirkan 5yang tidak diperlukan.

nimi
sumber
2

Python 2, 20 byte

print 109876/54+3-21

Sekali lagi, itu membosankan sama 2016.(740). Manfaatkan fakta bahwa jika Anda tidak memiliki angka desimal dalam ekspresi Anda, itu akan mengembalikan bilangan bulat.

Erik the Outgolfer
sumber
1

> <> (ikan), 18 byte

10987**r65r4*n;321

penjelasan:

mengalikan 9 8 dan 7 bersama untuk mendapatkan 504, membalikkan tumpukan dan membalikkannya tepat sebelum 4 ditambahkan, lalu mengalikan 504 dan 4 untuk mendapatkan 2016. Kemudian mencetak angka dan mengakhiri program sebelum 3 angka terakhir (saya bisa melakukan setelah itu juga tanpa perbedaan, jika itu penting menurut peraturan).

torcado
sumber
1

Matematika ++ , 17 byte

_(109876/54)+3-21

Sebenarnya, ini tercetak 2016.0. Tetapi benar-benar tidak ada cara untuk mencetak string yang tepat 2016dalam bahasa ini.

Solusi 17-byte TI-BASIC juga dapat digunakan di sini.

SuperJedi224
sumber
1

Polyglot, 17 Bytes

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

Kode ini, pertama kali digunakan dalam jawaban TI-BASIC Thomas Kwa , juga berfungsi dalam:

  • AppleScript (program lengkap)
  • bc (program lengkap)
  • Matematika ++ (ekspresi atau program lengkap)
  • Mathematica (fungsi, oleh karena itu tidak valid)
  • Powershell (program lengkap)
  • Japt (program lengkap)
  • JavaScript (input konsol, oleh karena itu tidak valid) Perlu verifikasi kedua
  • Perl 5 (fungsi, oleh karena itu tidak valid). Perlu verifikasi kedua
  • Haskell (fungsi, oleh karena itu tidak valid)
  • Python REPL (ekspresi, sehingga lingkungan REPL diperlukan untuk mendapatkan output)
VoteToClose
sumber
1
Dan apa gunanya?
nicael
@nica Saya --- akan --- sedang merencanakan (kecuali Thomas Kwa ingin menambahkan jawaban lain juga) untuk menambahkan semua jawaban yang melibatkan jawaban ini (kecuali TI-BASIC) yang dapat saya temukan. Ditandai sebagai Komunitas sehingga orang lain dapat berkontribusi.
Addison Crump
1
Mengapa kata "fungsi, oleh karena itu tidak valid"? Fungsi diizinkan secara default.
nimi
5
Saya tidak tahu tentang bahasa lain, tetapi 10+9*8-7+654*3-21bukan JavaScript atau fungsi Perl.
Dennis
1
@ Sp3000: Oh perubahan aturan yang tidak valid ini ...
nimi
1

π”Όπ•Šπ•„π•šπ•Ÿ 2, 15 karakter / 17 byte

109876/54+3-21⍜

Try it here (Firefox only).

Diterjemahkan ke round(109876/54+3-21).

Terima kasih kepada @Dennis karena telah menghemat 2 byte!

Mama Fun Roll
sumber
1

Java 7, 31 byte

int c(){return 109876/54+3-21;}

Membosankan port dari jawaban lain, yang menurut saya jawaban Jelly @ Dennis adalah yang pertama.

Kevin Cruijssen
sumber
1

PHP, 27 byte

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

(22 byte) terlalu membosankan,

jadi saya menggunakan 10 hingga 9 sebagai angka terpisah:

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

solusi lain, sebagian besar dengan cheat kecil:

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;
Titus
sumber
0

Milky Way 1.6.5 , 28 25 byte

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

Penjelasan

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
Zach Gates
sumber
0

BotEngine , 42 39 36 13x2 = 26

v109876543210
>ee   e@  eRP
SuperJedi224
sumber
0

05AB1E , 15 byte

109876 54Γ·3+21-

Cobalah online!

Jawaban Port of Dennis.

Guci Gurita Ajaib
sumber
0

Keempat, 22 byte

Perhitungan yang sama terlihat pada jawaban lain.

109876 54 / 3 + 21 - .

Cobalah online

mbomb007
sumber
0

C 37 byte

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

Tema yang sama seperti banyak yang hadir.

LambdaBeta
sumber
0

VBA, 15 byte

?109876\54+3-21

(Perhitungan tanpa malu-malu dicuri dari Dennis )

SeanC
sumber
0

JavaScript (ES6), 21 byte

f=

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

console.log(f())

Jika "hitung mundur" pergi ke 0, itu bisa dilakukan dalam 19 byte.

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

Dan, mengingat ini sudah 2017 sekarang, itu juga bisa dilakukan dalam 21 byte:

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

Shaggy
sumber