Deskripsi
Ada beberapa tantangan lain mengenai angka-angka ini sebelumnya, dan saya harap yang ini tidak ada di antara mereka.
The n th angka segitiga sama dengan jumlah semua bilangan sampai n , hal-hal sederhana. Ada halaman wikipedia dan entri di OEIS , bagi mereka yang ingin menginformasikan diri mereka lebih lanjut.
Sekarang, Gauss menemukan bahwa setiap bilangan alami dapat dinyatakan sebagai jumlah dari tiga bilangan segitiga (ini termasuk 0
), dan boleh saja memiliki satu bilangan lebih dari satu, misalnya 0 + 1 + 1 = 2
.
Tantangan
Tugas Anda adalah menulis program atau fungsi, diberi nomor alami (termasuk 0
), mencetak tiga angka segitiga yang meringkas argumen. Anda dapat mencetak angka-angka yang dipisahkan oleh spasi, sebagai array, atau dengan metode lain yang Anda suka. Namun, dilarang untuk menggunakan fungsi bawaan apa pun untuk secara langsung mendapatkan array, rentang atau bentuk koleksi lain yang berisi daftar angka segitiga (misalnya atom tunggal yang menghasilkan rentang).
Uji kasus
9 -> 6 + 3 + 0 or 3 + 3 + 3
12 -> 6 + 6 + 0 or 6 + 3 + 3 or 10 + 1 + 1
13 -> 6 + 6 + 1
1 -> 1 + 0 + 0
0 -> 0 + 0 + 0
Catatan: Jika ada lebih dari satu kombinasi yang mungkin, Anda dapat mencetak salah satu atau semua, tetapi Anda harus mencetak kombinasi apa saja satu kali, menghilangkan semua kombinasi yang merupakan hasil pengaturan ulang kombinasi lainnya. Saya sangat menghargai tautan coba-coba dan penjelasannya, saya sangat senang melihat bagaimana Anda memecahkan masalah;)
Ini kode-golf , jadi celah standar berlaku. Semoga jawaban tersingkat dalam byte menang!
a
tidak akan selalu menjadi angka segitiga
n
dan mengembalikan daftar pertama n
nomor segitiga yang diizinkan? Rasanya agak ditargetkan terhadap beberapa bahasa tertentu, meskipun saya tidak tahu yang mana.