Anda mungkin ingat di kelas satu atau dua menggunakan formulir yang diperluas untuk belajar tentang nilai tempat angka. Lebih mudah dijelaskan dengan sebuah contoh, jadi pertimbangkan nomornya 123
. Dalam bentuk diperluas itu diwakili sebagai 100 + 20 + 3
, yang membantu pikiran muda memvisualisasikan nilai tempat. Ini mengingatkan pada bagaimana Anda mengatakannya: seratus (plus) dua puluh (plus) tiga.
Kami dapat memperluas ini melewati unit tempat dengan desimal: 2.718 => 2 + 0.7 + 0.01 + 0.008
Tantangan Anda adalah untuk menulis sebuah program atau fungsi yang mengambil angka floating point positif atau nol (anggap itu sama besar atau tepat seperti bahasa Anda dapat menangani; itu tidak akan dalam notasi ilmiah) atau string dan mencetak / mengembalikannya dalam bentuk diperluas seperti yang dijelaskan di atas.
Anda tidak perlu spasi antara +
's atau nol sebelum titik desimal, jadi contoh di atas bisa 2+.7+.01+.008
. Nilai yang sama dengan nol harus dihilangkan ( 101.01 => 100 + 1 + 0.01
) kecuali jika inputnya nol (lihat di bawah).
Nilai tidak boleh memiliki lebih dari satu nol di depan sebelum koma desimal atau nol di belakangnya setelah itu (no-no:) 0060, 0000.2, 30., 30.000, .0400
. Masukan akan sesuai dengan ini juga.
Karena siswa kelas satu memiliki rentang perhatian yang pendek, kode Anda harus sesingkat mungkin.
Uji kasus
0 => 0
6 => 6
0.99 => 0.9 + 0.09
24601 => 20000 + 4000 + 600 + 1
6.283 => 6 + 0.2 + 0.08 + 0.003
9000000.0000009 => 9000000 + 0.0000009