tengo un pequeño inconveniente con este codigo
el problema recibe un numero n y de retorno me debe devolver el numero de combinaciones posibles
el ejemplo que me dieron era que si metia 3 me botaba 13 combinaciones.
miren este es mi codigo, ejecuta bien me pide el numero n pero despues de eso el programa no me responde.
me puede ayudar por favor a mirar donde estoy cometiendo este error.
desde ya muchisimas gracias por su respuestas
Citar
import java.util.*;
public class Ordenaciones {
public static void main(String args[]){
int n=0;
int [] i;
System.out.println("Digite El Numero De Objetos");
Scanner nums =new Scanner(System.in);
n=nums.nextInt();
i= new int[n];
System.out.println("El Numero De Ordenaciones Son"+orden(i,n));
}
static int orden(int i[], int n){
int x;
int y = 0;
int s;
int k;
int j;
if(n<=1){
return n;
}
for(j=-1;j<=n;j++){
i[j]=0;
}
i[0]=1;
x=0;
for(k=2;k<=n;k++){
for(j=0;j<=n-1;j++){
if(j>1){
y=i[j-2];
}
y=x;
x=((k-j)*(i[j]+i[j-1]));
}
i[n-2]=y;
i[n-1]=x;
}
s=0;
for(j=0;j<=n-1;j++){
s=s+i[j];
}
return s;
}
}
public class Ordenaciones {
public static void main(String args[]){
int n=0;
int [] i;
System.out.println("Digite El Numero De Objetos");
Scanner nums =new Scanner(System.in);
n=nums.nextInt();
i= new int[n];
System.out.println("El Numero De Ordenaciones Son"+orden(i,n));
}
static int orden(int i[], int n){
int x;
int y = 0;
int s;
int k;
int j;
if(n<=1){
return n;
}
for(j=-1;j<=n;j++){
i[j]=0;
}
i[0]=1;
x=0;
for(k=2;k<=n;k++){
for(j=0;j<=n-1;j++){
if(j>1){
y=i[j-2];
}
y=x;
x=((k-j)*(i[j]+i[j-1]));
}
i[n-2]=y;
i[n-1]=x;
}
s=0;
for(j=0;j<=n-1;j++){
s=s+i[j];
}
return s;
}
}