Anda harus menulis sebuah program atau fungsi yang menerima bilangan bulat sebagai input dan menghasilkan atau mengembalikan dua bilangan bulat yang jumlahnya adalah yang pertama.
Ada satu persyaratan lebih lanjut: nomor tidak dapat menjadi bagian dari output untuk dua input yang berbeda .
Detail
- Anda harus dapat menangani input untuk setidaknya rentang
-32768 .. 32767
(inklusif). - Jika tipe data Anda tidak bisa menangani bilangan bulat acak, itu bagus tapi algoritma Anda harus bekerja untuk bilangan besar dan kecil yang berubah-ubah secara teori.
Contohnya
Setiap blok menunjukkan bagian dari solusi yang benar atau salah dalam format input => output
.
1 => 6 -5
2 => -2 4
15 => 20 -5
Incorrect, as `-5` is used in two outputs.
-5 => -15 10
0 => 0 0
1 => 5 6
2 => -5 7
Incorrect, as `5 + 6` isn't `1`.
-1 => -1 0
0 => 6 -6
2 => 1 1
Can be correct if other outputs doesn't collide.
Ini adalah kode golf sehingga entri terpendek menang.
Jawaban:
Pyth, 8 byte
Demonstrasi. Setara dengan kode Python 2:
Jadi, hasilnya berbentuk
(-n**3, n+n**3)
Beberapa output:
Ini berbeda karena batu yang cukup jauh jarak yang menambahkan
n
untukn**3
tidak cukup untuk menyeberangi celah untuk kubus berikutnya:n**3 < n+n**3 < (n+1)**3
untuk positifn
, dan simetris untuk negatifn
.sumber
,
di awal, dua baris tampaknya diizinkan.J
tugas menekan pencetakan?-
di pyth bukan operator negasi unary, itu_
, jadi_J^Q3+QJ
berfungsi seperti yang diharapkan.J
untuk tidak berada di luar. Terima kasih telah menyodok saya tentang ini.Snowman 0.1.0 , 101 chars
Input pada STDIN, output yang dipisahkan ruang pada STDOUT.
Ini menggunakan metode yang sama dengan jawaban isaacg.
Versi komentar dengan baris baru, untuk "keterbacaan":
Komentar tentang solusi Snowman pertama di PPCG: Saya pikir tujuan desain saya membuat bahasa saya membingungkan mungkin telah tercapai.
Ini sebenarnya bisa saja jauh lebih pendek, tapi saya bodoh dan lupa menerapkan angka negatif untuk string -> penguraian angka. Jadi saya harus memeriksa secara manual apakah ada
-
karakter pertama dan hapus jika ada.sumber
Pyth,
1511 byte4 byte berkat @Jakube
Demonstrasi.
Ini memetakan sebagai berikut:
Jadi, aktif, selalu melibatkan
n^2
dann^2 + n
, plus atau minus.sumber
APL, 15 byte
Ini menciptakan fungsi monadik tanpa nama yang mengembalikan pasangan -n ^ 3 (
-⍵*3
), n + n ^ 3 (⍵+⍵*3
).Anda dapat mencobanya secara online .
sumber
Pyth -
1110 byteCukup kalikan dengan
10e10 dan -10e10 +1Terima kasih kepada @xnor karena telah menunjukkan kepada saya bahwa saya dapat menggunakanCG
nomor tersebut.Cobalah online di sini .
sumber
CG
.O ,
17 159 byteMenggunakan beberapa fitur baru O.
Versi Lebih Lama
sumber
Python 3,
2927Sunting: tidak memenuhi persyaratan pada poin "Rincian" ke-2
Bonus: bekerja mulai dari -99998 hingga 99998 inklusif
Ini menciptakan fungsi anonim *, yang dapat Anda gunakan dengan melampirkan tanda kurung dan kemudian menempatkan argumen dalam tanda kurung setelahnya seperti ini:
* Terima kasih kepada @ vioz- untuk menyarankan ini.
Contoh input / output:
sumber
f=
dan membiarkannya sebagai fungsi anonim, yang masih merupakan jawaban yang valid. Kemudian Anda dapat menghitung jumlah byte Anda menjadi 27 :)(lambda n:[99999*n,-99998*n])(99999)
dan(lambda n:[99999*n,-99998*n])(-99998)
akan bertabrakan dalam teori (dan dalam praktiknya).Haskell, 16 byte
Saya tanpa malu-malu menyalin metode @ xnor. Mungkin tidak ada yang lebih baik dari ini.
sumber