Pengguna PPCG dan mod terpilih, @Dennis baru saja menjadi pengguna kedua yang mendapatkan lebih dari 100rb rep!
Ini adalah ide yang benar-benar asli, yang tidak saya dapatkan dari orang lain , tetapi mari kita buat tantangan berdasarkan ID penggunanya, 12012
sebagai penghargaan!
Melihat itu, Anda akan melihat bahwa ada dua "bagian" yang berbeda pada ID-nya.
12
dan
012
Kedua bagian ini menambahkan hingga 3. Itu properti yang cukup menarik.
Mari kita mendefinisikan "angka Dennis 2.0" sebagai bilangan bulat positif di mana setiap kemunculan maksimal jumlah digit yang meningkat secara ketat ke angka yang sama. Sebagai contoh,
123
adalah angka Dennis 2.0 karena hanya ada satu sublist maksimal dari digit yang meningkat secara ketat, dan jumlahnya menjadi 6. Selain itu, 2.846.145 juga merupakan angka Dennis 2.0 karena tiga sublists maksimal peningkatan digit, yaitu
28
46
145
Semua jumlah ke 10
. Selain itu, angka yang hanya mengulangi angka yang sama haruslah angka Dennis 2.0 karena, misalnya, 777
dapat dipecah menjadi
7
7
7
yang jelas semuanya berjumlah tujuh.
Sejumlah seperti 42
ini tidak sejumlah Dennis 2.0, karena dipecah menjadi
4
2
yang jelas tidak menjumlahkan ke nomor yang sama.
Tantangan
Anda harus menulis program atau fungsi untuk menentukan apakah angka yang diberikan adalah angka Dennis 2.0 atau tidak. Anda dapat mengambil input dan output dalam format input yang masuk akal, misalnya sebagai string, sebagai angka, dari file, argumen funtion / return, dari STDIN / STDOUT, dll. Dan kemudian mengembalikan nilai kebenaran jika angka ini adalah Dennis 2.0 angka, dan nilai palsu jika tidak. Untuk referensi, ini adalah setiap nomor Dennis 2.0 hingga 1.000:
1
2
3
4
5
6
7
8
9
11
12
13
14
15
16
17
18
19
22
23
24
25
26
27
28
29
33
34
35
36
37
38
39
44
45
46
47
48
49
55
56
57
58
59
66
67
68
69
77
78
79
88
89
99
101
111
123
124
125
126
127
128
129
134
135
136
137
138
139
145
146
147
148
149
156
157
158
159
167
168
169
178
179
189
202
222
234
235
236
237
238
239
245
246
247
248
249
256
257
258
259
267
268
269
278
279
289
303
312
333
345
346
347
348
349
356
357
358
359
367
368
369
378
379
389
404
413
444
456
457
458
459
467
468
469
478
479
489
505
514
523
555
567
568
569
578
579
589
606
615
624
666
678
679
689
707
716
725
734
777
789
808
817
826
835
888
909
918
927
936
945
999
Celah standar berlaku, dan jawaban terpendek yang diukur dalam byte menang!
1236|6
,
antara mereka? Ini mungkin peregangan banyak.