Temukan tantangan aslinya di sini
Tantangan
Diberikan bilangan bulat, Z
dalam kisaran -2^31 < Z < 2^31
, output jumlah digit dalam angka itu (di basis 10).
Aturan
Anda tidak boleh menggunakan fungsi string apa pun (dalam kasus overloading, Anda tidak boleh melewatkan string ke fungsi yang bertindak sebagai fungsi string dan integer). Anda tidak diizinkan menyimpan nomor tersebut sebagai string.
Semua fungsi matematika diizinkan.
Anda dapat mengambil input di basis apa pun, tetapi output harus panjang dari angka di basis 10.
Jangan hitung tanda minus untuk angka negatif. Angka tidak akan pernah menjadi desimal.
Nol secara efektif nol di depan, sehingga dapat memiliki nol atau satu digit.
Contohnya
Input > Output
-45 > 2
1254 > 4
107638538 > 9
-20000 > 5
0 > 0 or 1
-18 > 2
Kemenangan
Kode terpendek dalam byte menang.
Jawaban:
Mathematica, 13 byte
Baik...
sumber
Python 2 , 30 byte
Cobalah online!
sumber
Japt ,
53 byteCobalah online!
sumber
a
tidak perlu - 5 menit sebelum tantangan diposting :-) Sayangnya, itu berarti itu hanya akan bekerja pada penerjemah online. ( uji online! )JavaScript (ES6), 19 byte
sumber
f=
.Jelly ,
32 byte1 byte disimpan berkat Leaky Nun
Cobalah online!
Penjelasan
sumber
DL
?D
). Tantangannya mengatakan: dalam kasus overloading, Anda tidak boleh melewatkan string ke fungsi yang berfungsi sebagai fungsi string dan integer. Jawaban ini mengikuti aturan itu: Saya tidak mengoper stringJawaban saya dari tantangan lain masih berfungsi:
Brachylog , 1 byte
Cobalah online!
The
l
builtin kelebihan beban, tetapi pada bilangan bulat, dibutuhkan jumlah digit dari bilangan bulat, mengabaikan tanda.sumber
Chaincode , 5 byte
Catatan: Ini persis kode yang sama dengan yang dari tantangan lain
Penjelasan
sumber
dc , 1 byte
Cobalah online!
Tidak menggunakan builtin, 18 byte:
Cobalah online!
sumber
SILOS , 41 byte
Cobalah online!
Pengembalian
1
untuk0
.sumber
Lua , 40 byte
Port dari jawaban python saya
Cobalah online!
sumber
Java 8,
61593937 bytePort dari jawaban C # @TheLethalCoder , tetapi tanpa
Math.floor
karena menggunakan(int)
-cast secara otomatis lantai / memotong desimal di Jawa.Cobalah online.
Java 7 rekursif jawaban (
6138 byte ):Pelabuhan @ Khaled.K 's C jawabannya .
Cobalah online.
sumber
C #,
4956 bytesumber
Alice , 16 byte
Cobalah online!
Penjelasan
Ini hanyalah kerangka kerja untuk input numerik → pemrosesan matematika → output numerik.
Sisa kode adalah algoritma nyata:
sumber
Python 2 , 48 byte
-3 Berkat ovs -1 berkat pizza
Cobalah online!
sumber
lambda x:1+log10(abs(x)+.1)//1
untuk 48 byteimport math
danmath.log10
menyimpan satu byteC, 27 byte
Coba Online
C (gcc), 22 byte
Menggunakan matematika, 29 byte
sumber
R , 40 byte
Cobalah online!
sumber
MATL , 5 byte
Cobalah online!
Penjelasan
sumber
05AB1E , 6 byte
Cobalah online! atau Coba semua tes
sumber
Ä>T.nî
Jelly , 5 byte
Cobalah online!
sumber
Oktaf , 27 byte
Cobalah online!
sumber
PHP, 23 Bytes
Cobalah online!
sumber
PowerShell,
5251 BytesTerima kasih kepada Felipe karena telah memperbaiki Masalah dengan Log10, dan memberikan penghematan 1byte.
Setiap
System.Math
panggilan sangat mahal di PowerShell.Menggunakan metode untuk mendapatkan Log10 dari Nilai Abs input, dan mengumpulkannya.
sumber
Floor()+1
.Ceil()
gagal karena kekuatan 10$m::Log10(...
untuk menyimpan byteQBIC , 25 byte
Ini membagi input dengan 10, dan melacak berapa kali kita bisa melakukan ini sampai
N
<1.Penjelasan:
sumber
Bash , 50 byte
Cobalah online!
Tidak ada perintah string / array, hanya menghitung digit dengan pembagian integer.
sumber
Ruby , 33 byte
Cobalah online!
sumber
bc , 6 byte
Fungsi bawaan.
sumber
Sebenarnya , 8 byte
Cobalah online!
Penjelasan:
Program ini menghitung secara efektif
floor(log10(x))+1
. Untuk berurusan denganlog(0)
tidak terdefinisi (sebenarnya mengembalikan(-inf+nanj)
yang merupakan cara khusus untuk mengatakan itu tidak terdefinisi), input bertambah jika0
sebelum menghitung panjangnya. Dengan demikian,0
dianggap memiliki panjang1
.sumber
Pari / GP , 13 byte
Cobalah online!
sumber
Ruby, 27 byte
Sebagai tes:
Ini menghasilkan:
sumber
Perl 5
-p
, 26 byteCobalah online!
sumber