user9627233:
Estoy tratando de contar el número de veces que se ejecuta a través del bucle de recursión, pero sigue expulsando a algunos grandes números de locos que no son correctos. Creo que la primera pregunta que tengo es esto posible hacer y si es donde debo poner la cuenta en el método de permutación.
package a02;
import java.util.Random;
public class permutations {
private static int count = 0;
static void permute(int[] a, int k) {
if (k == a.length) {
for (int i = 0; i < a.length; i++) {
System.out.print(" [" + a[i] + "] ");
}
System.out.println();
} else {
for (int i = k; i < a.length; i++) {
int temp = a[k];
a[k] = a[i];
a[i] = temp;
permute(a, k + 1);
temp = a[k];
a[k] = a[i];
a[i] = temp;
count++;
}
}
}
mettleap:
En su función, el recuento ++ es dentro del bucle. Creo que es por eso que está recibiendo números muy grandes e incorrectas. Mover la declaración recuento ++ ya sea al inicio de su método permute o hacia el final antes de que vuelva y usted debe tener la salida correcta. (En su caso el recuento ++ debe estar fuera todo el bloque if-else)