Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Ciao ragazzi,
ho implementato questo stralcio di codice che dati due numeri $m, $n mi restituisce le possibili combinazioni per cui scomponendo n nelle sue cifre da 1 a n e sommandoli tra loro (combinandoli) mi danno $m. Ad esempio:
$m = 5; $n = 3;
Le permutazioni saranno:
1+1+1+1+1
1+1+1+2
1+2+2
1+1+3
2+3
Codice sorgente - presumibilmente Php
function algo_p($number,$n,$d)
{
if($number=== 0 )
{
echo$d;
}
else
{
if($n> 1)
{
algo_p($number,$n-1,$d);
}
if($n<=$number)
{
algo_p($number-$n,$n,$n." ".$d);
}
}
}
algo_p($number= 5,$n=3,',');
Il codice funziona alla grande se non fosse che vorrei che la funzione mi restituisse un array di elementi e non una stampa di stringa.
Come posso fare?
Invece di stamparlo ritorna l'elemento in un array da un elemento, nelle chiamate ricorsive aggiungi l'array che ricevi ad un array che poi ritornerai.
Il problema è che fai l'append di un array ad un altro array, quindi si innestano.
Dorvesti aggiungere tutti gli elementi singolarmente, oppure usare una funzione che estenda o faccia il merge di due array, prova a cercare sulla documentazione.