# Aiuto problema: dream (o meglio: nigthmare 🤣 )

**URL:** <https://forum.olinfo.it/t/aiuto-problema-dream-o-meglio-nigthmare/7855>\
**Category:** Aiuto\
**Created:** [19 Novembre 2022, 11:15pm UTC](https://forum.olinfo.it/t/aiuto-problema-dream-o-meglio-nigthmare/7855 "2022-11-19T23:15:48Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mystral](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/m/e0b2c6/32.png) [@Mystral](https://forum.olinfo.it/u/Mystral)\
**Post date:** [19 Novembre 2022, 11:15pm UTC](https://forum.olinfo.it/t/aiuto-problema-dream-o-meglio-nigthmare/7855/1 "2022-11-19T23:15:48Z")

</div>

Dopo il primo round delle OIS stavo tentando di ottenere qualche punto in più su palindromic dreams visto che sono bloccato a 35 punti.

La mia idea è abbastanza semplice parto da: 10 ^ (X/2-1), aggiungo a questo numero una quantità i a partire da 0 fino a K-1 e ogni volta lo duplico, lo inverto e concateno l’originale e l’inverso, e infine aggiungo il risultato alla somma totale.

Ovviamente così la gestione con numeri di cifre molto grandi è complessa; allora avevo provato un’altra soluzione usando una classe tipo BigInt di Java e cioè facendo tutte le operazioni su numeri rappresentati sottoforma di stringhe e in questo modo riesce a gestire anche i casi con numeri di cifre grandi ma solo in locale perché sulla piattaforma risulta 0 punti.

Qualcuno ha qualche consiglio su come migliorare?

---

<div class="post-metadata">

**Author:** ![lollospadalaser](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/l/35a633/32.png) [@lollospadalaser](https://forum.olinfo.it/u/lollospadalaser)\
**Post date:** [20 Novembre 2022, 10:41pm UTC](https://forum.olinfo.it/t/aiuto-problema-dream-o-meglio-nigthmare/7855/2 "2022-11-20T22:41:55Z")

</div>

Provo a darti qualche consiglio per come l’ho risolto io:

1. il numero di cifre del numero palindromo è pari, diventa facile calcolare prima una metà e poi l’altra
2. tutti i numeri palindromi con X cifre sono almeno uguali a una certa quantità, il modulo di questa quantità lo puoi già calcolare in anticipo con K e dopo ti rimane da calcolare solo la differenza tra ogni numero e questa quantità
3. la successione dei numeri palindromi con cifre pari è abbastanza semplice, se riesci a capire il modo in cui incrementano hai già risolto gran parte del problema

---

<div class="post-metadata">

**Author:** ![Mystral](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/m/e0b2c6/32.png) [@Mystral](https://forum.olinfo.it/u/Mystral)\
**Post date:** [24 Novembre 2022, 1:19pm UTC](https://forum.olinfo.it/t/aiuto-problema-dream-o-meglio-nigthmare/7855/3 "2022-11-24T13:19:32Z")

</div>

Scusa, ho provato a ragionarci, ma non capisco bene il punto 2 cosa significa, se potessi spiegarti meglio te ne sarei grato.

---

<div class="post-metadata">

**Author:** ![lollospadalaser](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/l/35a633/32.png) [@lollospadalaser](https://forum.olinfo.it/u/lollospadalaser)\
**Post date:** [25 Novembre 2022, 4:11pm UTC](https://forum.olinfo.it/t/aiuto-problema-dream-o-meglio-nigthmare/7855/4 "2022-11-25T16:11:07Z")

</div>

per capire come mettere in atto il punto 2 devi essere sicuro di aver capito il punto 3 (cioè devi essere in grado, dato un numero palindromo a X cifre, di capire il numero palindromo successivo).

---

<div class="post-metadata">

**Author:** ![Mystral](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/m/e0b2c6/32.png) [@Mystral](https://forum.olinfo.it/u/Mystral)\
**Post date:** [25 Novembre 2022, 4:44pm UTC](https://forum.olinfo.it/t/aiuto-problema-dream-o-meglio-nigthmare/7855/5 "2022-11-25T16:44:51Z")

</div>

Il terzo punto non lo si risolve sommando al numero n con X cifre: 11 \* ( 10 ^ X/2 -1 ) ?

---

<div class="post-metadata">

**Author:** ![lollospadalaser](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/l/35a633/32.png) [@lollospadalaser](https://forum.olinfo.it/u/lollospadalaser)\
**Post date:** [25 Novembre 2022, 7:21pm UTC](https://forum.olinfo.it/t/aiuto-problema-dream-o-meglio-nigthmare/7855/6 "2022-11-25T19:21:19Z")

</div>

> [@Mystral](#):
>
> 11 \* ( 10 ^ X/2 -1 )

questa formula cosa dovrebbe dare come risultato? se per esempio mettiamo X=4 il risultato della tua espressione diventa 11\*99 = 1089 che non è un numero palindromo

---

<div class="post-metadata">

**Author:** ![Mystral](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/m/e0b2c6/32.png) [@Mystral](https://forum.olinfo.it/u/Mystral)\
**Post date:** [25 Novembre 2022, 8:13pm UTC](https://forum.olinfo.it/t/aiuto-problema-dream-o-meglio-nigthmare/7855/7 "2022-11-25T20:13:25Z")

</div>

No se tipo il numero palindromo n = 102201, allora k sarà 6, quindi la mia formula sarà 11 \* ( 10²) = 1100, 102201 + 1100 = 103301 che è il prossimo numero palindromo

---

<div class="post-metadata">

**Author:** ![lollospadalaser](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/l/35a633/32.png) [@lollospadalaser](https://forum.olinfo.it/u/lollospadalaser)\
**Post date:** [25 Novembre 2022, 9:55pm UTC](https://forum.olinfo.it/t/aiuto-problema-dream-o-meglio-nigthmare/7855/8 "2022-11-25T21:55:10Z")

</div>

secondo il tuo ragionamento per trovare il numero palindromo successivo a 1991 dovrei aggiungere 110 il che da come risultato 2101.  
Comunque non devi cercare di trovare la formula, ma il modo in cui si susseguono, se dividi il numero in due metà ti sarà più chiaro.

---

<div class="post-metadata">

**Author:** ![Mystral](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/m/e0b2c6/32.png) [@Mystral](https://forum.olinfo.it/u/Mystral)\
**Post date:** [25 Novembre 2022, 9:57pm UTC](https://forum.olinfo.it/t/aiuto-problema-dream-o-meglio-nigthmare/7855/9 "2022-11-25T21:57:15Z")

</div>

Se lo divido a metà è semplicemente un numero crescente che poi sarà specchiato nell’altra metà

---

<div class="post-metadata">

**Author:** ![lollospadalaser](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/l/35a633/32.png) [@lollospadalaser](https://forum.olinfo.it/u/lollospadalaser)\
**Post date:** [25 Novembre 2022, 10:32pm UTC](https://forum.olinfo.it/t/aiuto-problema-dream-o-meglio-nigthmare/7855/10 "2022-11-25T22:32:03Z")

</div>

Esatto, quindi ora sai calcolare facilmente ogni numero palindromo successivo ad un altro. Però c’è il problema che questi numeri possono avere fino a 100k cifre, ora prova a seguire questo consiglio che ti permette di calcolare il modulo di ogni numero palindromo:

> [@lollospadalaser](#):
>
> tutti i numeri palindromi con X cifre sono almeno uguali a una certa quantità, il modulo di questa quantità lo puoi già calcolare in anticipo con K e dopo ti rimane da calcolare solo la differenza tra ogni numero e questa quantità

In questo modo alla fine dividi il calcolo del numero palindromo in 3 parti

---

<div class="post-metadata">

**Author:** ![Mystral](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/m/e0b2c6/32.png) [@Mystral](https://forum.olinfo.it/u/Mystral)\
**Post date:** [1 Dicembre 2022, 7:33pm UTC](https://forum.olinfo.it/t/aiuto-problema-dream-o-meglio-nigthmare/7855/11 "2022-12-01T19:33:58Z")

</div>

Ti assicuro che ci sto provando a capire, ma proprio non arrivo a comprendere cosa significhi che tutti i numeri palindromi con ‘X’ cifre sono almeno uguali a una certa quantità, io avevo pensato significasse che la somma di tutti i numeri palindromi che hanno X cifre valesse N ma non so se è giusto.

---

<div class="post-metadata">

**Author:** ![v.bizzarri](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/v/7c8e57/32.png) [@v.bizzarri](https://forum.olinfo.it/u/v.bizzarri)\
**Post date:** [1 Dicembre 2022, 9:12pm UTC](https://forum.olinfo.it/t/aiuto-problema-dream-o-meglio-nigthmare/7855/12 "2022-12-01T21:12:21Z")

</div>

Prendi in considerazione l’esempio:  
i 3 numeri palindromi hanno tutti in comune 1001, il primo è 1001 +0, il secondo è 1001 + 110 e il terzo è 1001+220 quindi la soluzione è 3\*1001+ 110+220=3003+330=3333.  
Almeno ho interpretato così il suggerimento e ha funzionato.
