Utente PPCG e mod eletto, @Dennis è appena diventato il secondo utente in assoluto a guadagnare oltre 100.000 rappresentanti!
Questa è un'idea totalmente originale, che non ho ricevuto da nessun altro , ma facciamo una sfida in base al suo ID utente, 12012
come omaggio!
Guardandolo, noterai che ci sono due "sezioni" distinte nel suo ID.
12
e
012
Entrambe queste sezioni si sommano a 3. Questa è una proprietà piuttosto interessante.
Definiamo un "numero Dennis 2.0" come qualsiasi numero intero positivo in cui ogni sottosequenza massima di cifre strettamente crescenti si somma allo stesso numero. Per esempio,
123
è un numero Dennis 2.0 perché esiste solo un elenco secondario massimo di cifre in costante aumento, e somma a 6. Inoltre, 2.846.145 è anche un numero Dennis 2.0 perché i tre elenchi massimi di cifre in aumento, vale a dire
28
46
145
Tutto sommato a 10
. Inoltre, i numeri che ripetono la stessa cifra devono essere numeri Dennis 2.0 perché, ad esempio, 777
possono essere suddivisi in
7
7
7
che chiaramente tutto sommano a sette.
Un numero come non42
è un numero Dennis 2.0, poiché è suddiviso in
4
2
che chiaramente non si sommano allo stesso numero.
La sfida
È necessario scrivere un programma o una funzione per determinare se un determinato numero è un numero Dennis 2.0 o meno. Puoi prendere input e output in qualsiasi formato di input ragionevole, ad esempio come una stringa, come un numero, da un file, argomenti di funtion / return, da STDIN / STDOUT, ecc. E quindi restituire un valore di verità se questo numero è un Dennis 2.0 numero e un valore falso se non lo è. Per riferimento, ecco tutti i numeri Dennis 2.0 fino a 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
Si applicano scappatoie standard e vince la risposta più breve misurata in byte!
1236|6
,
tra di loro? Questo probabilmente lo sta allungando molto.