Diberikan bilangan bulat N
sebagai input, mengeluarkan N
nomor permutapalindromic.
Bilangan permutapalindromic adalah bilangan bulat yang benar-benar positif sehingga setidaknya ada satu permutasi dari digitnya yang menghasilkan palindrom (yaitu bilangan yang merupakan kebalikannya sendiri).
Sebagai contoh, 117
adalah angka permutapalindromic karena digitnya dapat di permutasi menjadi 171
, yang merupakan palindrome.
Kami menganggap bahwa bilangan seperti 10
bukan bilangan permutapalindromic, meskipun 01 = 1
merupakan palindrom. Kami memaksakan bahwa permutasi palindrom tidak boleh memiliki nol di depan (dengan demikian, 0
itu sendiri bukan permutapalindromik).
Angka yang sudah palindrom juga permutapalindromic, karena permutasi tidak ada yang valid.
Masukan dan keluaran
N
dapat berupa 0-diindeks atau 1-diindeks. Harap tunjukkan yang mana dari kedua jawaban yang Anda gunakan.- Input dapat diambil melalui
STDIN
, sebagai argumen fungsi, atau apa pun yang serupa dalam bahasa pilihan Anda. Keluaran dapat ditulisSTDOUT
, dikembalikan dari fungsi, atau apa pun yang serupa dalam bahasa pilihan Anda. - Input dan output harus dalam basis desimal.
Uji kasus
Kasus uji berikut ini diindeks 1. Program Anda harus dapat lulus dari semua kasus uji yang disajikan di sini paling lama 1 menit.
N Output
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 11
42 181
100 404
128 511
256 994
270 1166
Mencetak gol
Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
sumber
10
)Jawaban:
05AB1E ,
151413 byteMenyimpan satu byte berkat Emigna ! Kode:
Penjelasan:
Menggunakan pengkodean CP-1252 . Cobalah online! .
sumber
µNœvyJÂïQ}O__½
untuk 14.Brachylog, 19 byte
Cobalah online!
Membutuhkan waktu sekitar 17 detik untuk
N = 270
.Penjelasan
Predikat utama:
Predikat 1:
sumber
Brachylog ,
2120 byte1 byte berkat Fatalize.
Apakah Anda merancang tantangan untuk Brachylog?
Cobalah online!
270 butuh sekitar setengah menit di sini.
Predikat 0 (predikat utama)
Predikat 1 (predikat bantu)
sumber
Pyth, 14
Coba di sini atau jalankan Test Suite
Ekspansi:
sumber
JavaScript (ES6), 99 byte
Penjelasan:
sumber
f=
ketika Anda merujuknya nantiR, 145 byte
ungolfed
Pada dasarnya - fungsi memeriksa keanggotaan dalam set permutapalindromic, dan loop sementara bertambah hingga menemukan anggota ke-n.
sumber
Python 2.7,
163154 byte:Cukup sederhana. Pada dasarnya menggunakan
while
loop untuk berulang kali membuat array yang berisi angka permutapalindromic rentang[1,Q)
hinggaQ
cukup besar sehingga array berisiInput
jumlah item. Kemudian output elemen terakhir dalam array itu.Cobalah secara Online! (Ideone)
sumber
Perl 6 , 66 byte
0 berbasis
Penjelasan:
Uji:
sumber
Dyalog APL , 51 byte
Diindeks satu.
Selesaikan semua test case secara instan di TryAPL
sumber
a(n) <= 5n
?JavaScript (ES6), 92
Kurang golf
Uji
sumber
Javascript (menggunakan perpustakaan eksternal - Dihitung) (142 byte)
Tautan ke lib: https://github.com/mvegh1/Enumerable/
Penjelasan kode: _.Sequence membuat enumerable untuk hitungan elemen "n", berdasarkan predikat tanda tangan ("i" teration
, "a" array yang diakumulasikan). Keluarkan iterasi saat ini ke string, dan buat enumerable dari semua permutasi dari itu. Uji apakah ada permutasi yang memenuhi tes tidak dimulai dengan "0" dan bahwa pembalikan permutasi sama dengan permutasi. Kembalikan elemen terakhir dalam urutan karena itu adalah output yang diinginkan sesuai OPsumber
Python 2, 93 byte
1-diindeks. Tergantung pada sistem Anda, kotak uji terakhir mungkin melebihi kedalaman rekursi yang diizinkan.
Tidak menghitung permutasi. Sebagai gantinya, gunakan fakta bahwa dua string adalah permutasi jika mereka sama ketika diurutkan. Untuk menguji apakah suatu angka permutapalindromic, periksa apakah angka yang diurutkan sama dengan angka yang diurutkan dari setiap palindrom hingga batas.
96 byte:
1-diindeks. Tergantung pada sistem Anda, kotak uji terakhir mungkin melebihi kedalaman rekursi yang diizinkan.
Ini tidak melihat permutasi dan sebagai gantinya menggunakan karakterisasi berikut:
Ini benar karena palindrome harus memasangkan digit dari awal dan akhir, kecuali untuk kemungkinan digit tengah. Pengecualian berasal dari persyaratan bahwa digit terdepan adalah bukan nol, dan beberapa digit bukan nol harus muncul dua kali kecuali jumlahnya satu digit.
sumber
Haskell,
8987 bytesumber
C, 254 byte
sumber