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