Urutan Euro-iginal


14

Diberikan bilangan bulat positif dan menghasilkan angka ke- n dari urutan euro-iginal.

Menghitung Urutannya

Urutan ini sama dengan OEIS A242491 .

Suatu angka adalah bagian dari urutan tersebut jika nomor tersebut dapat dibuat dengan menggunakan sebanyak koin atau catatan euro yang berbeda, tetapi masing-masing hanya satu . Perhatikan bahwa Anda tidak harus mempertimbangkan sen.

Contoh:

6 akan berada dalam urutan, karena dapat terdiri dari koin 1 euro dan 5 euro.

4 TIDAK akan berada dalam urutan, karena tidak dapat dibentuk dengan persyaratan yang diberikan.

Untuk memberikan gambaran kepada semua orang, inilah daftar dengan nilai euro yang harus Anda pertimbangkan:

1 €, 2 €, 5 €, 10 €, € 20, € 50, € 100, € 200, € 500

Perhatikan bahwa urutan ini hanya berkisar dari 0 (ya, 0 termasuk!) Hingga 888.


Berikut adalah 15 elemen pertama dari urutan ini:

0, 1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 15, 16, 17, ...

Uji Kasus

Input -> Output

2 -> 1
6 -> 6
21 -> 25
33 -> 50

Apa input terbesar yang mungkin? Bisakah kita memiliki beberapa test case yang lebih besar?
xnor

3
Bisakah kita mengindeks a(1)=1seperti tabel oeis ?
xnor

6
Bisakah kita selesaikan N<=512?
Stewie Griffin

@ xnor Jika masih kembali 0untuk n=0itu baik-baik saja.
Ian H.

Bisakah kita menampilkan hasil yang diindeks 0 bukannya 1 diindeks? Jadi, 0->0; 1->1; 5->6; 20->25; 32->50; 511->888bukannya 1->0; 2->1; 6->6; 21->25; 33->50; 512->888.
Kevin Cruijssen

Jawaban:


12

Jelly , 7 byte

b8d4ḅ5Ḍ

Cobalah online!

Bagaimana itu bekerja

b8d4ḅ5Ḍ  Main link. Argument: n (integer)

b8       Convert n from integer to base 8.
  d4     Divmod each base-8 digit by 4, mapping the digit d to [d / 4, d % 4].
    ḅ5   Convert the quotient-remainder pairs from base 5 to integer, mapping
         [d / 4, d % 4] to (d / 4 * 5 + d % 4).
         The last two steps establish the following mapping for octal digits.
             0 -> [0, 0] -> 0
             1 -> [0, 1] -> 1
             2 -> [0, 2] -> 2
             3 -> [0, 3] -> 3
             4 -> [1, 0] -> 5
             5 -> [1, 1] -> 6
             6 -> [1, 2] -> 7
             7 -> [1, 3] -> 8
      Ḍ  Convert the resulting array of digits from decimal to integer.


8

Sekam , 8 7 5 byte

Σ!Ṗİ€

Cobalah online! Sunting: -3 bytes berkat Zgarb!

   ݀   build-in infinite sequence [1,2,5,10,20,50,100,...]
  Ṗ     power set [[],[1],[2],[1,2],[5],[1,5],[2,5],[1,2,5],...]
 !      index into the list with given input, e.g. 4 yields [1,2]
Σ       take the sum of that list

Saya mendengar bahwa itu direncanakan untuk berubah ݀ke urutan yang terbatas[0.01,0.02,0.05,0.1,0.2,0.5,1,2,5,10,...,500] di masa depan. Setelah itu diterapkan, kode berikut harus bekerja hitungan byte 7:

Σ!Ṗ↓6İ€

di mana ↓6menjatuhkan enam elemen pertama dari urutan. Cobalah online!


Apakah ini dimaksudkan agar program menambahkan 2 0s ke output?
Ian H.

Σ!Ṗ↑9İ€harus menyimpan byte.
Zgarb

@IanH. Program pertama menghasilkan output yang benar. TIO link kedua hanya akan berfungsi setelah implementasi ݀telah diubah. Bahwa saat ini kembali 2500bukan 25hanya kebetulan.
Laikoni

@ Zgarb Terima kasih banyak!
Laikoni

1
Saya pikir Anda juga dapat menghapus ↑9, karena teks tantangan tidak menyebutkan apa yang harus terjadi untuk input melebihi 512.
Zgarb

6

Perl 5 , 29 byte

28 byte kode +1 untuk -p .

Menggunakan pengindeksan berbasis 0.

$_=sprintf"%o",$_;y/4-7/5-8/

Cobalah online!


seharusnya sprintf"%o",$_-1, karena urutan diindeks dari 1 misalnya 2 -> 1, meskipun urutan OEIS dimulai dengan 1
Nahuel Fouilleul

Ini menggunakan 0 pengindeksan sebagaimana diizinkan oleh pertanyaan (atau setidaknya, komentar OP di bawah pertanyaan). Saya memang punya -1sampai OP diklarifikasi!
Dom Hastings

5

Jelly , 11 byte

0Df9,4Ṇ$$#Ṫ

Cobalah online!

Terima kasih banyak @Erik the Outgolfer untuk banyak bantuan dalam obrolan!

Penjelasan

0Hari9,4Ṇ $$ # Ṫ - Tautan monadik.

0 # - Kumpulkan N pertandingan pertama, mulai dari 0.
 D - Digit.
  f9,4 - Filter-Menyimpan digit yang 9 atau 4. Hasil [] ketika tidak ada.
      Ṇ - TIDAK logis. [] -> 1 (benar), daftar tidak kosong -> 0 (salah).
          Ṫ - Pop dan kembalikan elemen terakhir.

3

Mathematica, 47 byte

(FromDigits/@0~Range~8~Drop~{5}~Tuples~3)[[#]]&

Mathematica, 48 byte

Sort[Tr/@Subsets@Join[x={1,2,5},10x,100x]][[#]]&   

-6 byte dari Martin Ender


1
Join[x={1,2,5},10x,100x]dan Subsets@.
Martin Ender


3

05AB1E , 7 byte

Diindeks 0.

Jawaban Port of Mr. Xcoder Jelly

µN7nÃg_

Cobalah online!

Penjelasan

µ          # loop over increasing N until input matches are found
      _    # the logical negation of
     g     # the length of
 N         # N
  7nà     # with only 4s and 9s kept

Bagus, sepertinya 05AB1E adalah alat terbaik untuk algoritma saya :-). Pendekatan arithmagic Dennis akan memberi Anda 9 (mungkin golf) byte: 8в4‰ε5β}J(0-diindeks)
Tn. Xcoder

@ Mr.Xcoder: Saya mendapat 8в4‰J5öJ8 dengan trik Dennis. Milikmu memang lebih cocok untuk 05AB1E :)
Emigna

2

Python 2 , 40 38 36 byte

Terinspirasi oleh jawaban xnor , tetapi menggunakan pengindeksan 1.

lambda n:~-n*5/4+~-n/32*10+n/257*100

Cobalah online!

Python 2 , 78 65 62 61 58 56 byte

lambda i,n=0:f(i+~-('4'in`n`or'9'in`n`),n+1)if i else~-n

Cobalah online!



Apakah ada alasan @xnor menghapus jawabannya, karena sepertinya benar-benar berlaku untuk saya ..: S
Kevin Cruijssen

1
@KevinCruijssen Saya telah membatalkan penghapusan sekarang karena penanya menjawab bahwa pengalihan pengindeksan a(1)=1diizinkan.
xnor

2

Jelly , 15 byte

Diindeks 0.

滓£¦®‘ד¢½d‘S+

Cobalah online!

Penjelasan

Ini didasarkan dari solusi Python xnor , di mana algoritma tersebut adalah n + n / 4 + n / 32 * 10 + n / 256 * 100 .

lambda n: sum(i * j for i, j in zip([n / i for i in [1, 4, 32, 256]], [1, 1, 10, 100]]))

Karena n pertama tidak dimodifikasi, ini sama dengan:

lambda n: sum(i * j for i, j in zip([n / i for i in [4, 32, 256]], [1, 10, 100]])) + n

Karena 4, 32, dan 256 semuanya adalah kekuatan dua, mereka dapat diterjemahkan ke dalam bit shift.

lambda n: sum(i * j for i, j in zip([n >> i for i in [2, 5, 8]], [1, 10, 100]])) + n

Golfiness tidak diterjemahkan dengan baik dalam Python, tetapi mengubah daftar menjadi string indeks halaman kode Jelly mengurangi jumlah byte Jelly.

lambda n: sum(i * j for i, j in zip([n >> i for i in map(jelly_codepage.index, '£¦®')], map(jelly_codepage.index, '¢½d'))) + n

Jelly , 24 byte

“¡¿ɼcÞµ³Ṡf2ż’bȷ3ŒPS€Ṣ
ị¢

Cobalah online!


1
+1 karena ada dalam kode Anda. :) Tapi -1 karena ini adalah pertama kalinya jawaban Jelly lebih panjang daripada jawaban Java saya. XD Malu pada Anda (dan gl & hf bermain golf lebih lanjut). ;)
Kevin Cruijssen

1
@KevinCruijssen Ini akan mendatangkan malapetaka pada peringkat Elo .
xnor

@KevinCrujissen Sedikit lebih baik sekarang? : P
totallyhuman

1
@icrieverytim Anda membuat kesalahan ketik pada nama saya, jadi saya tidak mendapatkan panggilan. Tapi ya, jauh lebih baik. :) +1 dari saya.
Kevin Cruijssen

2

Oktaf , 59 byte

@(n)unique((dec2bin(0:511)-48)*kron([1 2 5],10.^(0:2))')(n)

Cobalah online!

Penjelasan

Kode menciptakan urutan penuh dan kemudian mengindeksnya.

Pertama, ekspresi biner dari angka 0, 1, ... 511yang dihasilkan sebagai 512 × 9 matriks:

dec2bin(0:511)-48

( -48bagian diperlukan karena hasil dec2binadalah karakter, bukan angka). Ini memberi

0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1
...
1 1 1 1 1 1 1 1 1

Kemudian produk Kronecker dari [1 2 5] dan [1 10 100]dihitung

kron([1 2 5],10.^(0:2))

dan ditransformasikan

'

yang memberi sembilan kemungkinan nilai euro sebagai vektor 9 × 1:

1
2
5
10
20
50
100
200
500

Matriks-mengalikan matriks dan vektor di atas

*

memberikan vektor 512 × 1 yang berisi semua kemungkinan angka dalam urutan, dengan pengulangan dan tidak disortir:

  0
500
 50
...
388
888

Deduplikasi dan penyortiran

unique(...)

memberikan urutan lengkap:

  0
  1
  2
...
887
888

Akhirnya, input digunakan untuk mengindeks ke dalam urutan ini

(n)

untuk menghasilkan output.


2

Ruby , 28 27 byte

->x{("%o"%x).tr"4-7","5-8"}

Cobalah online!

Penjelasan

Keluarkan string oktal, ganti digit 4..7 dengan 5..8


Saya pikir Anda dapat menghapus spasi setelah .tr untuk -1
Snack


1

05AB1E , 20 byte

9LD3%n>s3/óTsm*æO{sè

Cobalah online!


1-diindeks, menggunakan rumus [(n%3)^2 + 1]*10^floor(n/3)untuk menghasilkan 10 istilah pertama, kemudian menggunakan powerset untuk menghitung semua kombinasi yang mungkin ... Lalu saya urutkan dan tarik a[b].


Lihat dalam aksi di bawah ini:

Full program: 9LD3%n>s3/óTsm*æO{sè
current >> 9  ||  stack: []
current >> L  ||  stack: ['9']
current >> D  ||  stack: [[1, 2, 3, 4, 5, 6, 7, 8, 9]]
current >> 3  ||  stack: [[1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9]]
current >> %  ||  stack: [[1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], '3']
current >> n  ||  stack: [[1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 0, 1, 2, 0, 1, 2, 0]]
current >> >  ||  stack: [[1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 4, 0, 1, 4, 0, 1, 4, 0]]
current >> s  ||  stack: [[1, 2, 3, 4, 5, 6, 7, 8, 9], [2, 5, 1, 2, 5, 1, 2, 5, 1]]
current >> 3  ||  stack: [[2, 5, 1, 2, 5, 1, 2, 5, 1], [1, 2, 3, 4, 5, 6, 7, 8, 9]]
current >> /  ||  stack: [[2, 5, 1, 2, 5, 1, 2, 5, 1], [1, 2, 3, 4, 5, 6, 7, 8, 9], '3']
current >> ó  ||  stack: [[2, 5, 1, 2, 5, 1, 2, 5, 1], [0.3333333333333333, 0.6666666666666666, 1.0, 1.3333333333333333, 1.6666666666666667, 2.0, 2.3333333333333335, 2.6666666666666665, 3.0]]
current >> T  ||  stack: [[2, 5, 1, 2, 5, 1, 2, 5, 1], [0, 0, 0, 1, 1, 1, 2, 2, 2]]
current >> s  ||  stack: [[2, 5, 1, 2, 5, 1, 2, 5, 1], [0, 0, 0, 1, 1, 1, 2, 2, 2], 10]
current >> m  ||  stack: [[2, 5, 1, 2, 5, 1, 2, 5, 1], 10, [0, 0, 0, 1, 1, 1, 2, 2, 2]]
current >> *  ||  stack: [[2, 5, 1, 2, 5, 1, 2, 5, 1], [1, 1, 1, 10, 10, 10, 100, 100, 100]]
current >> æ  ||  stack: [[2, 5, 1, 20, 50, 10, 200, 500, 100]]
current >> O  ||  stack: < OMITTED, THE RESULT OF POWERSET IS HUGE >
current >> {  ||  stack: [[0, 2, 5, 1, 20, 50, 10, 200, 500, 100, 7, 3, 22, 52, 12, 202, 502, 102, 6, 25, 55, 15, 205, 505, 105, 21, 51, 11, 201, 501, 101, 70, 30, 220, 520, 120, 60, 250, 550, 150, 210, 510, 110, 700, 300, 600, 8, 27, 57, 17, 207, 507, 107, 23, 53, 13, 203, 503, 103, 72, 32, 222, 522, 122, 62, 252, 552, 152, 212, 512, 112, 702, 302, 602, 26, 56, 16, 206, 506, 106, 75, 35, 225, 525, 125, 65, 255, 555, 155, 215, 515, 115, 705, 305, 605, 71, 31, 221, 521, 121, 61, 251, 551, 151, 211, 511, 111, 701, 301, 601, 80, 270, 570, 170, 230, 530, 130, 720, 320, 620, 260, 560, 160, 750, 350, 650, 710, 310, 610, 800, 28, 58, 18, 208, 508, 108, 77, 37, 227, 527, 127, 67, 257, 557, 157, 217, 517, 117, 707, 307, 607, 73, 33, 223, 523, 123, 63, 253, 553, 153, 213, 513, 113, 703, 303, 603, 82, 272, 572, 172, 232, 532, 132, 722, 322, 622, 262, 562, 162, 752, 352, 652, 712, 312, 612, 802, 76, 36, 226, 526, 126, 66, 256, 556, 156, 216, 516, 116, 706, 306, 606, 85, 275, 575, 175, 235, 535, 135, 725, 325, 625, 265, 565, 165, 755, 355, 655, 715, 315, 615, 805, 81, 271, 571, 171, 231, 531, 131, 721, 321, 621, 261, 561, 161, 751, 351, 651, 711, 311, 611, 801, 280, 580, 180, 770, 370, 670, 730, 330, 630, 820, 760, 360, 660, 850, 810, 78, 38, 228, 528, 128, 68, 258, 558, 158, 218, 518, 118, 708, 308, 608, 87, 277, 577, 177, 237, 537, 137, 727, 327, 627, 267, 567, 167, 757, 357, 657, 717, 317, 617, 807, 83, 273, 573, 173, 233, 533, 133, 723, 323, 623, 263, 563, 163, 753, 353, 653, 713, 313, 613, 803, 282, 582, 182, 772, 372, 672, 732, 332, 632, 822, 762, 362, 662, 852, 812, 86, 276, 576, 176, 236, 536, 136, 726, 326, 626, 266, 566, 166, 756, 356, 656, 716, 316, 616, 806, 285, 585, 185, 775, 375, 675, 735, 335, 635, 825, 765, 365, 665, 855, 815, 281, 581, 181, 771, 371, 671, 731, 331, 631, 821, 761, 361, 661, 851, 811, 780, 380, 680, 870, 830, 860, 88, 278, 578, 178, 238, 538, 138, 728, 328, 628, 268, 568, 168, 758, 358, 658, 718, 318, 618, 808, 287, 587, 187, 777, 377, 677, 737, 337, 637, 827, 767, 367, 667, 857, 817, 283, 583, 183, 773, 373, 673, 733, 333, 633, 823, 763, 363, 663, 853, 813, 782, 382, 682, 872, 832, 862, 286, 586, 186, 776, 376, 676, 736, 336, 636, 826, 766, 366, 666, 856, 816, 785, 385, 685, 875, 835, 865, 781, 381, 681, 871, 831, 861, 880, 288, 588, 188, 778, 378, 678, 738, 338, 638, 828, 768, 368, 668, 858, 818, 787, 387, 687, 877, 837, 867, 783, 383, 683, 873, 833, 863, 882, 786, 386, 686, 876, 836, 866, 885, 881, 788, 388, 688, 878, 838, 868, 887, 883, 886, 888]]
current >> s  ||  stack: [[0, 1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 15, 16, 17, 18, 20, 21, 22, 23, 25, 26, 27, 28, 30, 31, 32, 33, 35, 36, 37, 38, 50, 51, 52, 53, 55, 56, 57, 58, 60, 61, 62, 63, 65, 66, 67, 68, 70, 71, 72, 73, 75, 76, 77, 78, 80, 81, 82, 83, 85, 86, 87, 88, 100, 101, 102, 103, 105, 106, 107, 108, 110, 111, 112, 113, 115, 116, 117, 118, 120, 121, 122, 123, 125, 126, 127, 128, 130, 131, 132, 133, 135, 136, 137, 138, 150, 151, 152, 153, 155, 156, 157, 158, 160, 161, 162, 163, 165, 166, 167, 168, 170, 171, 172, 173, 175, 176, 177, 178, 180, 181, 182, 183, 185, 186, 187, 188, 200, 201, 202, 203, 205, 206, 207, 208, 210, 211, 212, 213, 215, 216, 217, 218, 220, 221, 222, 223, 225, 226, 227, 228, 230, 231, 232, 233, 235, 236, 237, 238, 250, 251, 252, 253, 255, 256, 257, 258, 260, 261, 262, 263, 265, 266, 267, 268, 270, 271, 272, 273, 275, 276, 277, 278, 280, 281, 282, 283, 285, 286, 287, 288, 300, 301, 302, 303, 305, 306, 307, 308, 310, 311, 312, 313, 315, 316, 317, 318, 320, 321, 322, 323, 325, 326, 327, 328, 330, 331, 332, 333, 335, 336, 337, 338, 350, 351, 352, 353, 355, 356, 357, 358, 360, 361, 362, 363, 365, 366, 367, 368, 370, 371, 372, 373, 375, 376, 377, 378, 380, 381, 382, 383, 385, 386, 387, 388, 500, 501, 502, 503, 505, 506, 507, 508, 510, 511, 512, 513, 515, 516, 517, 518, 520, 521, 522, 523, 525, 526, 527, 528, 530, 531, 532, 533, 535, 536, 537, 538, 550, 551, 552, 553, 555, 556, 557, 558, 560, 561, 562, 563, 565, 566, 567, 568, 570, 571, 572, 573, 575, 576, 577, 578, 580, 581, 582, 583, 585, 586, 587, 588, 600, 601, 602, 603, 605, 606, 607, 608, 610, 611, 612, 613, 615, 616, 617, 618, 620, 621, 622, 623, 625, 626, 627, 628, 630, 631, 632, 633, 635, 636, 637, 638, 650, 651, 652, 653, 655, 656, 657, 658, 660, 661, 662, 663, 665, 666, 667, 668, 670, 671, 672, 673, 675, 676, 677, 678, 680, 681, 682, 683, 685, 686, 687, 688, 700, 701, 702, 703, 705, 706, 707, 708, 710, 711, 712, 713, 715, 716, 717, 718, 720, 721, 722, 723, 725, 726, 727, 728, 730, 731, 732, 733, 735, 736, 737, 738, 750, 751, 752, 753, 755, 756, 757, 758, 760, 761, 762, 763, 765, 766, 767, 768, 770, 771, 772, 773, 775, 776, 777, 778, 780, 781, 782, 783, 785, 786, 787, 788, 800, 801, 802, 803, 805, 806, 807, 808, 810, 811, 812, 813, 815, 816, 817, 818, 820, 821, 822, 823, 825, 826, 827, 828, 830, 831, 832, 833, 835, 836, 837, 838, 850, 851, 852, 853, 855, 856, 857, 858, 860, 861, 862, 863, 865, 866, 867, 868, 870, 871, 872, 873, 875, 876, 877, 878, 880, 881, 882, 883, 885, 886, 887, 888]]
current >> è  ||  stack: [[0, 1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 15, 16, 17, 18, 20, 21, 22, 23, 25, 26, 27, 28, 30, 31, 32, 33, 35, 36, 37, 38, 50, 51, 52, 53, 55, 56, 57, 58, 60, 61, 62, 63, 65, 66, 67, 68, 70, 71, 72, 73, 75, 76, 77, 78, 80, 81, 82, 83, 85, 86, 87, 88, 100, 101, 102, 103, 105, 106, 107, 108, 110, 111, 112, 113, 115, 116, 117, 118, 120, 121, 122, 123, 125, 126, 127, 128, 130, 131, 132, 133, 135, 136, 137, 138, 150, 151, 152, 153, 155, 156, 157, 158, 160, 161, 162, 163, 165, 166, 167, 168, 170, 171, 172, 173, 175, 176, 177, 178, 180, 181, 182, 183, 185, 186, 187, 188, 200, 201, 202, 203, 205, 206, 207, 208, 210, 211, 212, 213, 215, 216, 217, 218, 220, 221, 222, 223, 225, 226, 227, 228, 230, 231, 232, 233, 235, 236, 237, 238, 250, 251, 252, 253, 255, 256, 257, 258, 260, 261, 262, 263, 265, 266, 267, 268, 270, 271, 272, 273, 275, 276, 277, 278, 280, 281, 282, 283, 285, 286, 287, 288, 300, 301, 302, 303, 305, 306, 307, 308, 310, 311, 312, 313, 315, 316, 317, 318, 320, 321, 322, 323, 325, 326, 327, 328, 330, 331, 332, 333, 335, 336, 337, 338, 350, 351, 352, 353, 355, 356, 357, 358, 360, 361, 362, 363, 365, 366, 367, 368, 370, 371, 372, 373, 375, 376, 377, 378, 380, 381, 382, 383, 385, 386, 387, 388, 500, 501, 502, 503, 505, 506, 507, 508, 510, 511, 512, 513, 515, 516, 517, 518, 520, 521, 522, 523, 525, 526, 527, 528, 530, 531, 532, 533, 535, 536, 537, 538, 550, 551, 552, 553, 555, 556, 557, 558, 560, 561, 562, 563, 565, 566, 567, 568, 570, 571, 572, 573, 575, 576, 577, 578, 580, 581, 582, 583, 585, 586, 587, 588, 600, 601, 602, 603, 605, 606, 607, 608, 610, 611, 612, 613, 615, 616, 617, 618, 620, 621, 622, 623, 625, 626, 627, 628, 630, 631, 632, 633, 635, 636, 637, 638, 650, 651, 652, 653, 655, 656, 657, 658, 660, 661, 662, 663, 665, 666, 667, 668, 670, 671, 672, 673, 675, 676, 677, 678, 680, 681, 682, 683, 685, 686, 687, 688, 700, 701, 702, 703, 705, 706, 707, 708, 710, 711, 712, 713, 715, 716, 717, 718, 720, 721, 722, 723, 725, 726, 727, 728, 730, 731, 732, 733, 735, 736, 737, 738, 750, 751, 752, 753, 755, 756, 757, 758, 760, 761, 762, 763, 765, 766, 767, 768, 770, 771, 772, 773, 775, 776, 777, 778, 780, 781, 782, 783, 785, 786, 787, 788, 800, 801, 802, 803, 805, 806, 807, 808, 810, 811, 812, 813, 815, 816, 817, 818, 820, 821, 822, 823, 825, 826, 827, 828, 830, 831, 832, 833, 835, 836, 837, 838, 850, 851, 852, 853, 855, 856, 857, 858, 860, 861, 862, 863, 865, 866, 867, 868, 870, 871, 872, 873, 875, 876, 877, 878, 880, 881, 882, 883, 885, 886, 887, 888], '32']
50
stack > [50]

0

JavaScript (ES6), 34 byte

n=>--n+(n>>2)+(n>>5)*10+(n>>8)*100

Atau 32 byte menggunakan pengindeksan 0 yang benar:

f=
n=>n+(n>>2)+(n>>5)*10+(n>>8)*100
<input type=number min=0 max=511 value=0 oninput=o.textContent=f(+this.value)><pre id=o>0


2
Tidak seharusnya n=1memberi 0?
Ayb4btu


0

Retina , 42 byte

.+
$*1;
+`(1+)\1{7}
$1;
1111
1$&
(1*);
$.1

Cobalah online! Tautan termasuk kasus uji. Diindeks 0. Penjelasan:

.+
$*1;

Konversi dari desimal ke unary, dengan a ; akhiran.

+`(1+)\1{7}
$1;

Konversi ke oktal, tetapi masih menggunakan representasi digit dengan unary ; unary setelah setiap nilai unary.

1111
1$&

Tambahkan 1 ke nilai 4-7.

(1*);
$.1

Konversi setiap nilai ditambah sufiksnya menjadi desimal.



0

C , 67 byte

main(n){scanf("%d",&n);printf("%d",n+(n>>2)+(n>>5)*10+(n>>8)*100);}

Port langsung dari jawaban JavaScript Neil , tapi saya pikir ini harus ditambahkan untuk kelengkapan.


Diuji pada GCC versi 6.3.0. Ini akan membuang beberapa peringatan, tetapi tetap kompilasi.

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.