Scriviamo un numero abbastanza grande e chiamiamolo N.
Supponiamo che N abbia m cifre e quindi scegliamo un secondo
numero, r, che sia però minore di m.
Ora, da N cancelliamo r cifre, riavvicinando quelle rimanenti (ma
senza cambiare l'ordine), in modo tale che il numero risultante
sia massimo.
Come facciamo?
Ridurre al massimo
Moderatori: Gianfranco, Bruno
Questo forum è una sezione del PORTALE DI BASE CINQUE
Ridurre al massimo
(Bruno)
...........................
Invisibile un vento
l'ha apena sfioragia
sospension d'un momento;
e la bola iridessente gera 'ndagia.
{Biagio Marin}
................................................................
Meglio soluzioni sbagliate che risposte esatte.
{Rudi Mathematici}
...........................
Invisibile un vento
l'ha apena sfioragia
sospension d'un momento;
e la bola iridessente gera 'ndagia.
{Biagio Marin}
................................................................
Meglio soluzioni sbagliate che risposte esatte.
{Rudi Mathematici}
Concordo con delfo, chiaramente se il numero di cifre da cancellare mi permette di arrivare ad incontrare un 9 altrimenti si cancella fino a trovare il numero maggiore in ordine.
Dopodichè con le cifre avanzate da cancellare si ripete la stessa operazione negli intervalli successivi fino ad esaurirle.
Dopodichè con le cifre avanzate da cancellare si ripete la stessa operazione negli intervalli successivi fino ad esaurirle.
caso limite: cancellare una sola cifra.
si cancella la prima cifra la cui successiva è superiore
è possibile-probabile che iterando il procedimento si arrivi, passetto dopo passetto, a quanto proposto prima
se fosse vero penso che il programma esecutivo dovrebbe essere di una semplicità disarmante.
Se ho detto fesserie, scusatemi: ho avuto una pessima giornata
si cancella la prima cifra la cui successiva è superiore
è possibile-probabile che iterando il procedimento si arrivi, passetto dopo passetto, a quanto proposto prima
se fosse vero penso che il programma esecutivo dovrebbe essere di una semplicità disarmante.
Se ho detto fesserie, scusatemi: ho avuto una pessima giornata
Enrico
pessima giornata, ma ottima risposta!delfo52 ha scritto:caso limite: cancellare una sola cifra.
si cancella la prima cifra la cui successiva è superiore
è possibile-probabile che iterando il procedimento si arrivi, passetto dopo passetto, a quanto proposto prima
se fosse vero penso che il programma esecutivo dovrebbe essere di una semplicità disarmante.
Se ho detto fesserie, scusatemi: ho avuto una pessima giornata
while (r > 0)
{
i = 1
while ((N > N[i+1]) or (i == m))
{
i = i + 1
}
if (i < m) then
{
for j = i to m - 1
{
N = N[i+1]
}
}
N[m] = 0
m = m - 1
r = r - 1
}
Non è il massimo dell'efficienza ma è compatto
P.S.: è uno pseudocodice simile al C
il panurgo
Principio di Relatività: $\mathbb{m} \not \to \mathbb{M} \, \Longleftrightarrow \, \mathbb{M} \not \to \mathbb{m}$
"Se la montagna non va a Maometto, Maometto NON va alla montagna"
Principio di Relatività: $\mathbb{m} \not \to \mathbb{M} \, \Longleftrightarrow \, \mathbb{M} \not \to \mathbb{m}$
"Se la montagna non va a Maometto, Maometto NON va alla montagna"