Tugas
Diberikan bilangan bulat non-negatif n
, keluaran 1
jika n
ini 0
, dan output nilai n
sebaliknya.
Memasukkan
Bilangan bulat non-negatif.
- Jika Anda ingin menerima string sebagai input, string tersebut akan cocok dengan regex berikut:,
/^(0|[1-9][0-9]*)$/
yaitu string tidak boleh memiliki angka nol di awal, kecuali saat itu0
. - Jika Anda menerima integer nyata sebagai input, Anda dapat mengasumsikan bahwa integer berada dalam kemampuan penanganan bahasa.
Keluaran
Bilangan bulat positif, ditentukan di atas. Nol terkemuka tidak diizinkan. Output Anda harus cocok dengan regex /^[1-9][0-9]*$/
.
Testcases
input output
0 1
1 1
2 2
3 3
4 4
5 5
6 6
7 7
Mencetak gol
Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
Celah standar berlaku.
Jawaban:
C (gcc),
1413 byteTerima kasih kepada @betseg untuk mengingatkan saya pada
n?:1
trik di komentar jawaban C lainnya!Cobalah online!
C, 17 byte
Cobalah online!
C, 16 byte
Cobalah online!
sumber
3*!n+n
sama dengan3*0+5
.main
dari mana fungsi / makrof
dipanggil. Solusi tidak harus berupa program lengkap secara default. Versi spesifik gcc mungkin atau tidak dapat dikompilasi di kompiler lain, dan mungkin atau mungkin tidak berjalan dengan benar ketika dikompilasi di kompiler lain.Japt , 2 byte
Cobalah online!
Penjelasan
ª
adalah jalan pintas untuk||
operator JS . Japt memiliki input implisit, sehingga program ini menghitunginput||1
, dan hasilnya secara implisit dikirim ke STDOUT.w1
akan bekerja dengan baik, mengambil input dan maksimum1
.sumber
Alice , 7 byte
Cobalah online!
Penjelasan
sumber
JavaScript (ES6), 7 byte
sumber
n=>n+!n
(Setidaknya saya pikir)n|!n
, meskipun yang ini terbatas pada kuantitas 31-bit.)n=>n||1
dapat disederhanakann||1
, maka tidak. Jawaban yang dapat diterima adalah program atau fungsi lengkap.n=>do_something_with(n)
adalah fungsi panah dalam sintaks ES6.n
jika tidak nol. Bitwise ATAU akan memodifikasin
setiap kali bit paling signifikan tidak diatur (misalnya(4|1) === 5
).Pyth, 2 byte
Cobalah online
Penjelasan
sumber
Retina , 4 byte
Cobalah online!
Jika input dimulai dengan nol, ganti dengan 1. (Berfungsi karena input dijamin tidak memiliki angka nol di depan untuk nilai yang bukan nol.)
sumber
V , 4 byte
Cobalah online!
Menyalahgunakan perilaku yang tidak disukai tetapi diharapkan , jadi saya tidak bisa benar-benar menyebutnya bug. Penjelasan:
Di Vim, perintah menerima hitungan. Misalnya,
<C-a>
akan menambah angka, tetapi7<C-a>
akan menambah angka dengan 7. Namun, Anda tidak dapat menggunakan0
sebagai hitungan, karena0
sudah menjadi perintah (buka kolom pertama), danDalam konteks editor teks, jarang masuk akal untuk meminta perintah dijalankan 0 kali.
Ini bagus untuk editor teks, tetapi biasanya menjengkelkan untuk bahasa golf, jadi V menimpa beberapa perintah sehingga
0
merupakan hitungan yang valid. Sebagai contoh,é
,ñ
,Ä
, dan beberapa orang lain. Namun, karena<C-a>
ini adalah perintah builtin vim, itu tidak ditimpa, jadi menjalankan ini dengan input positif memberi:Tetapi berjalan dengan 0 sebagai input memberi:
Penjelasan lengkap:
sumber
0
tidak menjadi hitungan berguna. Saya bahkan tidak mempertimbangkannya pada awalnya karena saya sering menghindarinyaJ , 2 byte
Cobalah online!
^
[argumen] diangkat ke kekuatan*
tanda argumen (0 jika 0 lain 1)Karena
1=0^0
dalam J.sumber
Haskell, 5 byte
Contoh penggunaan:
(max 1) 0
->1
.Tidak banyak yang bisa dijelaskan.
sumber
dc, 7
Bergantung pada fakta yang
dc
mengevaluasi 0 0 hingga 1, tetapi 0 n hingga 0 untuk semua n lainnya.Cobalah online .
sumber
R, 13 byte
dibaca
n
dari stdin. Denganpmax
, itu bisa membaca dalam daftar dan mengembalikan nilai yang sesuai untuk setiap elemen dalam daftar untuk +1 byte.coba online!
Saya harus mencatat bahwa ada solusi lain baik R di 13 byte oleh Sven Hohenstein yang memungkinkan untuk belum lagi solusi 13 byte dari
yang membuat saya bertanya-tanya apakah itu batas bawah untuk R.
sumber
pryr
:pryr::f(n+!n)
. Tidak dapat menemukan yang lebih kecil ...Cubix , 6 byte
Entah bagaimana berhasil memasangnya di unit cube ... Uji online!
Penjelasan
Sebelum dijalankan, kode disusun sebagai jaring kubus:
IP (penunjuk instruksi) kemudian ditempatkan di wajah paling kiri (
I
), menghadap ke kanan. Instruksi berjalan dari sana adalah:IP kemudian mengenai
!
lagi, melewatkan@
bagian bawah wajah. Ini tidak membantu, karena kita perlu menekan@
untuk mengakhiri program. IP menyentuhL
lagi dan melewati garis tengah secara terbalik (L1!I
) sebelum berakhir padaL
sekali lagi, yang akhirnya mengubah IP menjadi@
.sumber
brainfuck , 8 byte
Cobalah online!
sumber
V , 5 byte
Dimana
<C-a>
adalah0x01
.Cobalah online!
Penjelasan
sumber
Jelly, 2 byte
Cobalah online!
Cukup banyak jawaban Pyth saya, tetapi ini adalah program Jelly pertama saya.
sumber
Oasis , 2 byte
Menggunakan rumus berikut: a (0) = 1 , a (n) = n
Cobalah online!
sumber
>V
.R
2016 bytesumber
Brachylog , 3 byte
Cobalah online!
Penjelasan
Jika kita menambahkan implisit
?
(Input) dan.
(Output), kita memiliki:sumber
MarioLANG , 12 byte
Cobalah online!
Bagaimana itu bekerja
Mario mulai di kiri atas, awalnya berjalan ke kanan. Dia membaca sebuah int dari input (
;
) dan menyimpannya di sel memori saat ini. Lalu ia jatuh dari tanah (=
), memukul[
, yang membuatnya mengabaikan perintah berikutnya jika sel saat ini adalah 0.Jika selnya bukan 0, dia akan mulai berjalan ke kiri (
<
), mengeluarkan sel saat ini sebagai int (:
), dan jatuh ke kematiannya (akhir program).Jika sel adalah 0, ia mengabaikan perintah untuk belok kiri, dan terus berjalan ke kanan. Ia menambah sel saat ini (
+
), mengeluarkannya, dan jatuh ke kematiannya.sumber
Brain-Flak ,
22, 10 byteCobalah online!
Penjelasan:
Jika inputnya bukan nol, maka
{{}}
akan muncul semuanya dari stack dan mengevaluasi ke input. Jika nol, tidak ada yang muncul, dan akan dievaluasi menjadi nol. Jadi berlari({{}})
memberiBukan nol:
Nol:
Pada titik ini, kami akan menambahkan ketinggian tumpukan (0 untuk non-nol, 1 untuk nol) dan mengeluarkan satu nilai lagi dari tumpukan. (karena tumpukan diisi dengan angka 0 yang tak terhingga, ini akan muncul sebagai 0 teratas atau 0 tambahan)
sumber
TI-BASIC, 7 byte
Kalau tidak,
TI-BASIC, 7 byte
sumber
Segi enam ,
76 byteDiperluas:
Cobalah online!
Disimpan 1 byte berkat Martin!
Jika nomornya bukan nol, cetaklah, jika tidak, tambahkan nomor itu dan cetaklah.
sumber
APL (Dyalog) , 3 byte
Cobalah online!
Ini mengambil langit argumen dan
1
.sumber
Python, 15 byte
sumber
n or 1
, 6 byte?The rules are not terribly clear. I think we have a consensus on meta that REPLs count, but as a separate language, which would allow snippets in many cases, but snippets are not permitted according to this meta post
-> codegolf.meta.stackexchange.com/questions/2419/…1or n
akan selalu kembali1
, bukan?lambda n:n|1>>n
dc, 11 byte
[1]sf
menyimpan makro dalam register f yang mendorong 1 ke atas tumpukan,?
membaca input,d0=f
menjalankan makro f jika input adalah 0,p
mencetak bagian atas tumpukan.Uji:
sumber
Excel, 10 Bytes
Ini menghemat 4 Bytes dari solusi pernyataan 'IF' yang jelas
=IF(A1=0,1,A1)
,.sumber
=A1+NOT(A1)
Java 8, 10 byte
sumber
i==0
dapat digantikan olehi<1
R, 13 byte
Di sini,
scan
digunakan untuk membaca nilai inputn
. Negasi darin
(yaitu!n
, 0 atau 1) ditambahkan ken
.sumber
Mathematica,
98 bytePer Martin Ender:
Ide pertama:
Fungsi murni dengan penggantian
0
dengan1
. Ruang itu perlu atau ia pikir kita bagi.0
.sumber
Perl 5, 6 + 2 byte untuk flag -l dan -p
Mengambil input pada baris terpisah dari stdin. Berjalan dengan bendera
-lp
.sumber