TUGAS
bilangan bulat cetak n, di mana 12 <= n <= 123456789
, dan semua pasangan digit berturut-turut dalam n memiliki perbedaan positif yang sama di antara mereka (misalnya 2468 tetapi tidak 2469).
TANPA INPUT.
Keluaran:
12
13
14
15
16
17
18
19
23
24
25
26
27
28
29
34
35
36
37
38
39
45
46
47
48
49
56
57
58
59
67
68
69
78
79
89
123
135
147
159
234
246
258
345
357
369
456
468
567
579
678
789
1234
1357
2345
2468
3456
3579
4567
5678
6789
12345
13579
23456
34567
45678
56789
123456
234567
345678
456789
1234567
2345678
3456789
12345678
23456789
123456789
Aturan
- Celah standar berlaku.
- tidak ada input
kode menang paling pendek.
Kredit golf anarki
Jawaban:
Jelly ,
1211 byteCobalah online!
Bagaimana itu bekerja
sumber
ìà Find fastest route between two points using Dykstra's Algorithm
Python 2 , 81 byte
Cobalah online!
Solusi saya dari golf anarki. Idenya adalah untuk mengulangi semua tiga kali lipat panjang yang mungkin, nilai awal, dan langkah, yang memberikan hasil yang diurutkan. Triple dikodekan sebagai nilai
r
dari72
ke647
, dan komponen diekstrak sebagaik/72
,k/8%9
, dank%8
. Memulaik
dengan cukup tinggi menghindari angka satu digit dari hasil.xsot menyelamatkan dua byte dari ini dengan mengganti
range
dengan serangkaian digit hardcoded'123456789'
.Ini ditulis di bawah batasan batas runtime dua detik. Strategi yang lebih lambat yang menyaring angka daripada menghasilkan ini mungkin lebih pendek.
sumber
1
ke123456789
, alih-alih memaksakan jawaban untuk menghasilkan beberapa cara cerdas untuk menghasilkan angka yang benar dalam urutan yang tepat (diurutkan).C,
166152 Bytes6 byte disimpan berkat @KevinCruijssen!
8 byte disimpan berkat @JonathanFrech!
Cobalah online
Versi kode di atas yang sepenuhnya diformat dapat dilihat di bawah.
sumber
while(i<123456789)
menjadiwhile(i<=123456789)
sebaliknya sesuai dengan rentang tantangan? Juga, Anda dapat golf dengan 6 byte:p,l,d,i=11;main(){for(char s[10];i<=123456789;){sprintf(s,"%d",++i);p=0;for(l=strlen(s);--l>0;){d=s[l]-s[l-1];if(p<1)p=d;if(p^d|d<1)break;p=d;}if(l<1)puts(s);}}
i<1e9
.l<1
bisa bermain golf!l
, karenal
tidak pernah mencapai nilai negatif.i<1e9
. Dan!l
ketikal
selalu>=0
terdengar masuk akal untuk menebak CI (saya tidak pernah diprogram dalam C sendiri).Jelly ,
14, 13 byteCobalah online!
Satu byte disimpan berkat @MrXcoder!
Ini sangat tidak efisien, jadi akan habis di TIO, tetapi jika selesai, itu akan menghasilkan output yang benar. Anda dapat mencobanya dengan angka yang lebih kecil di sini: Coba online!
Penjelasan:
sumber
$
tautan pembantu di akhir.DIµ>0ȦȧE¶Ç77#
05AB1E , 23 byte
Cobalah online!
Ganti
•7=›ζ•
dengan 7000 untuk menyelesaikannya di TIO, atau cukup tekan tombol "terminate" sebelum habis, menghasilkan angka yang dicetak hingga saat itu.sumber
žh
'0123456789'
,1357
misalnya juga nomor yang valid yang Anda butuhkan untuk menghasilkan.•7=›ζ•
Mathematica, 79 byte
Cobalah online! dengan angka yang lebih rendah karena sangat lambat
di sini adalah pendekatan lain yang membangun semua angka dalam 1sec
Mathematica, 123 byte
Cobalah online! semua angka dalam satu detik
sumber
Sekam ,
1413 byteMencetak angka yang dipisahkan baris baru ke STDOUT. Cobalah online!
-1 byte karena inspirasi dari H.PWiz.
Penjelasan
sumber
Bahasa Wolfram (Mathematica) , 76 byte
Cobalah online!
sumber
APL (Dyalog) ,
3728 byteCobalah online! (dengan rentang yang lebih pendek, karena batas waktu)
Bagaimana?
x←11+⍳123456789
-11, 12... 1e9
ke dalamx
¨
- untuk setiap⍎¨⍕⍵
- membobol angka2-/
- dapatkan daftar perbedaan∪
- dapatkan elemen unik1=≢
- length == 1?x/⍨
- gunakan ini sebagai topeng pada rentang yang dibuat⍪
- dan membuat kolomsumber
Sekam , 14 byte
Cobalah online!
sumber
≠
. : PI sudah lupa itu juga berfungsi untuk karakterBatch,
210200 byteTidak ada optimasi, jadi sangat lambat - membutuhkan waktu sekitar 25 detik hingga 12345, jadi untuk output lengkap Anda harus menunggu sekitar 3 hari.
sumber
Java 8,
169168145 bytePelabuhan @ Jacobinski C menjawab (setelah saya sedikit ).
-23 byte berkat @Nevay .
Penjelasan:
Coba di sini. (Ini agak terlalu lambat menjelang akhir, jadi tidak mencetak angka terakhir pada TIO. Namun mencetak angka akhir secara lokal dalam waktu sekitar 20 detik.)
sumber
v->{byte[]a;for(int i=9,p,l;++i<1e9;System.out.print(l<1?i+"\n":""))for(a=(i+"").getBytes(),p=0,l=a.length;--l>0&&p*(p^(p=a[l]-a[l-1]))<1&p>0;);}
break
dan menambahkannya ke cek for-loop, tapi ini saya tidak akan muncul dengan diri saya sendiri. ;) Terima kasih!05AB1E , 14 byte
Cobalah online!
sumber
12žhŸʒS¥D0›PsË&
, saya tidak bisa menjalankannya secara lokal. Bisakah Anda membuat ini benar-benar dieksekusi?Ÿ
, berfungsi dengan baikPython 2 ,
1039795 byte-2 byte terima kasih kepada @JonathanFrech
Cobalah online!
sumber
`n`[1:]
.Python 2 ,
7675 byteMemakan waktu sekitar 3 menit secara lokal.
Cobalah online! (dimodifikasi untuk mencetak semua angka kecuali yang terakhir)
sumber
JavaScript (Firefox 30-57), 105 byte
Panjang loop dari 2 hingga 10 (x adalah indeks karakter terakhir dan oleh karena itu 1 kurang dari panjang), mulai digit dari 1 hingga 9 dan langkah 1 hingga 9, kemudian filter pada digit akhir menjadi kurang dari 10 dan jika jadi hasilkan dengan memfilter digit dari string digit.
sumber
Uncaught SyntaxError: Unexpected token for
Pyth , 21 byte
Pendekatan pintar Port of Dennis .
Coba di sini!
Pyth , 23 byte
Ini habis pada penerjemah online, tetapi bekerja jika diberikan cukup waktu dan memori.
Cobalah online dengan angka yang lebih rendah .
sumber
MATL ,
1716 byteCobalah online! dengan
1e9
diganti oleh1e3
sehingga tidak waktu habis dalam kompiler online.sumber
JavaScript (ES6), 121 byte
Tidak sependek jawaban Neil , tapi kupikir itu masih layak untuk dikirim.
Bekerja dengan membangun seperangkat Poweret di
'123456789'
mana semua entri yang tidak cocok dipotong dan diawali dengan0
, mengurutkan hasil dalam urutan numerik dan hanya menyimpan 77 entri yang relevan.Demo
Tampilkan cuplikan kode
sumber
C (gcc) , 106 byte
Cobalah online!
Versi ungolfed (cantik):
sumber
JavaScript (ES6),
109104 byteBekerja dengan menghasilkan semua angka yang mungkin: loop melalui setiap kenaikan dari 8 ke 1 (variabel
i
), loop melalui setiap digit awal dari 8 ke 1 (variabelj
), loop melalui setiap digit antaraj
dan10-i
(variabelk
) dan menghasilkan stringt
dengan menambahkank
ke arust
. Pada setiap langkaht
ditambahkan ke array output.Cobalah online!
sumber
Bahasa Wolfram (Mathematica) , 71 byte
Cobalah online!
Cepat kilat karena membangun daripada memilih output.
sumber
Java (OpenJDK 8) ,
228174170163 byteCobalah online!
sumber
JavaScript (ES6), 145 byte
Pendekatan lurus ke depan dengan sedikit sihir.
Menjalankan cuplikan akan menghabiskan banyak memori ...
sumber
PHP,
8584 bytecoba online .
biaya penyortiran 17 byte. Versi ini mencetak hasil yang dipesan secara berbeda:
sumber