Pertimbangkan mengambil bilangan bulat non-negatif seperti 8675309 dan menghitung nilai absolut dari perbedaan antara semua pasangan angka tetangga.
Untuk 8675309
kita |8-6| = 2
, |6-7| = 1
, |7-5| = 2
, |5-3| = 2
, |3-0| = 3
, |0-9| = 9
. Merangkai hasil ini bersama-sama menghasilkan, integer lain yang lebih kecil non-negatif: 212239
. Mengulangi proses memberi 11016
, kemudian 0115
, yang oleh konvensi bahwa nol depan tidak ditulis menyederhanakan 115
, menjadi 04
atau 4
yang tidak dapat direduksi lebih jauh. Dengan merangkum semua nilai ini, kita dapatkan 8675309 + 212239 + 11016 + 115 + 4 = 8898683
.
Mari kita definisikan Digit Difference Sum (atau DDS) sebagai operasi berulang-ulang mengambil perbedaan digit angka untuk membentuk angka baru, lalu menambahkan semua angka yang dihasilkan ke aslinya.
Berikut adalah 20 nilai pertama dalam urutan DDS yang sesuai:
N DDS(N)
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 11
11 11
12 13
13 15
14 17
15 19
16 21
17 23
18 25
19 27
Berikut adalah nilai 10000 pertama , grafik yang cukup aneh:
Terutama karena tampilannya sama ketika Anda merencanakannya menjadi 1000 atau bahkan 100:
(Saya akan menyebutnya tangga dokter gigi ...)
Tantangan
Tulis program atau fungsi yang menggunakan bilangan bulat non-negatif dan mencetak atau mengembalikan nilai DDS-nya. Misalnya, jika inputnya adalah 8675309
, output seharusnya 8898683
.
Kode terpendek dalam byte menang.