[Resolvido] Função Recursiva

Iniciado por LeandroCGMS, 11 de Junho de 2018, 10:23

tópico anterior - próximo tópico

LeandroCGMS

Agora:
Parece estar resolvido, segue o código:

function verificarRepetido($resultadoArray)
{
$primosAteOitenta = array(2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79);

        for ($i = 0, $j = count($resultadoArray) - 1; $i < count($resultadoArray); $i++, $j--) {
            for($j = 0; $j < count($resultadoArray); $j++) {
                if($i == $j){
                    continue;
                }
                if($resultadoArray[$i] == $resultadoArray[$j]){
                    $resultadoArray[$i] = rand(1,80);
                    verificarRepetido($resultadoArray);
                }
            }
        } // SÓ SAI DAQUI, QUANDO NÃO HAVER MAIS REPETIDOS

        /*echo "depois do primeiro FOR de REPETIDOS";
        print_r($resultadoArray);*/

        for ($i = 0; $i < count($resultadoArray); $i++) {
            for ($j = 0; $j < count($primosAteOitenta); $j++) {
                if ($resultadoArray[$i] == $primosAteOitenta[$j]) {
                    $resultadoArray[$i] = rand(1, 80);
                    verificarRepetido($resultadoArray);
                }
            }
        } // SÓ SAI DAQUI, QUANDO NÃO HAVER NÚMEROS PRIMOS

        sort($resultadoArray);


        for ($i = 0; $i < count($resultadoArray); $i++) { // FOR DA IMPRESSÃO DO ARRAY COM VÍRGULAS EM FORMATO CONJUNTO
            if ($i == count($resultadoArray) - 1) {
                echo "$resultadoArray[$i]";
                break;
            }
            echo "$resultadoArray[$i], ";
        }
    }


Anterioemente:
Bom dia.
O que tem de errado nessa função recursiva que não passa do primeiro FOR?

function verificarRepetido($resultadoArray)
        {
            $primosAteOitenta = array(2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79);

            for ($i = 0, $j=count($resultadoArray) - 1; $i < count($resultadoArray); $i++, $j--) {
                if($resultadoArray[$i] == $resultadoArray[$j]) {
                    $resultadoArray[$i] = rand(1,80);
                    verificarRepetido($resultadoArray);
                }
            } // SÓ SAI DAQUI, QUANDO NÃO HAVER MAIS REPETIDOS

            echo "depois do primeiro FOR de REPETIDOS";
            print_r($resultadoArray);

            for ($i = 0; $i < count($resultadoArray); $i++) {
                for($j = 0; $j < count($primosAteOitenta); $j++) {
                    if($resultadoArray[$i] == $primosAteOitenta[$j]){
                        $resultadoArray[$i] = rand(1,80);
                        verificarRepetido($resultadoArray);
                    }
                }
            } // SÓ SAI DAQUI, QUANDO NÃO HAVER NÚMEROS PRIMOS

            sort($resultadoArray);


            for($i = 0; $i < count($resultadoArray); $i++) { // FOR DA IMPRESSÃO DO ARRAY COM VÍRGULAS EM FORMATO CONJUNTO
                if($i == count($resultadoArray) - 1){
                    echo "$resultadoArray[$i]";
                }
                echo "$resultadoArray[$i], ";
            }
        }