Usuário PPCG e mod eleito, @Dennis acabou de se tornar o segundo usuário a ganhar mais de 100k repetições!
Essa é uma ideia totalmente original, que eu não recebi de mais ninguém , mas vamos fazer um desafio baseado em seu ID de usuário, 12012
como uma homenagem!
Olhando para ele, você notará que existem duas "seções" distintas no ID dele.
12
e
012
Ambas as seções somam 3. Isso é uma propriedade bastante interessante.
Vamos definir um "número Dennis 2.0" como qualquer número inteiro positivo em que toda subsequência máxima de dígitos estritamente crescentes seja igual ao mesmo número. Por exemplo,
123
é um número Dennis 2.0 porque existe apenas uma sub-lista máxima de dígitos estritamente crescentes e soma 6. Além disso, 2.846.145 também é um número Dennis 2.0 porque as três sublistas máximas de dígitos crescentes, a saber
28
46
145
Tudo soma para 10
. Além disso, os números que apenas repetem o mesmo dígito devem ser números Dennis 2.0, porque, por exemplo, 777
podem ser divididos em
7
7
7
que claramente todos somam sete.
Um número que não42
seja o número Dennis 2.0, pois é dividido em
4
2
que claramente não somam o mesmo número.
O desafio
Você deve escrever um programa ou função para determinar se um determinado número é um número Dennis 2.0 ou não. Você pode obter entrada e saída em qualquer formato de entrada razoável, por exemplo, como uma string, como um número, de um arquivo, argumentos / retorno de função, de STDIN / STDOUT, etc. e, em seguida, retornar um valor verdadeiro se esse número for um Dennis 2.0 número e um valor falso se não for. Para referência, eis todos os números do Dennis 2.0 de até 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
As brechas padrão se aplicam e a resposta mais curta, medida em bytes, vence!
1236|6
,
entre eles? Provavelmente isso está exagerando bastante.