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.

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.

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;


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 .


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.


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!


Â== ~~:-)
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

bc, 14

109876/54+3-21

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


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.


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.


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).


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.


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)

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

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;

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




0

C 37 byte

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

Tema yang sama seperti banyak yang hadir.


0

VBA, 15 byte

?109876\54+3-21

(Perhitungan tanpa malu-malu dicuri dari Dennis )


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());

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.