Foro de elhacker.net

Programación => Java => Mensaje iniciado por: JulCesa en 20 Noviembre 2011, 03:18 am



Título: en que falla este codigo java
Publicado por: JulCesa en 20 Noviembre 2011, 03:18 am
buenas noches comunidad
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;
   }
}


Título: Re: en que falla este codigo java
Publicado por: lexoazul en 20 Noviembre 2011, 04:30 am
Hola JulCesa:
En esta parte del codigo tienes un error los recorridos de los arreglos se inician desde 0 hasta N
por tanto tu estas llamando desde -1 por eso marca un error.
Código:
for(j=-1;j<=n;j++){
      i[j]=0;
   }
Espero te sirva la ayuda


Título: Re: en que falla este codigo java
Publicado por: JulCesa en 20 Noviembre 2011, 04:46 am
Hola JulCesa:
En esta parte del codigo tienes un error los recorridos de los arreglos se inician desde 0 hasta N
por tanto tu estas llamando desde -1 por eso marca un error.
Código:
for(j=-1;j<=n;j++){
      i[j]=0;
   }
Espero te sirva la ayuda
Hola lexoazul
acabo de hacer lo que me dijiste y me sigue saliendo el mismo error.
voy a poner informacion adicional en el post por si tu sabes de pascal me puedas ayudar por favor.
de nuevo muchas gracias


Título: Re: en que falla este codigo java
Publicado por: RyogiShiki en 20 Noviembre 2011, 05:29 am
1 Usa GeSHi:
(http://i56.tinypic.com/34erlw6.png)

2. Si quieres inicializar el array, que es lo que creo quieres hacer la forma correcta de hacerlo es esta:

Código
  1. for (j = 0; j < i.length; j++) {
  2.    i[j] = 0;
  3. }
  4.  

Sobre el resto, explica mejor lo que quieres hacer. que no te entiendo muy bien. Intenta limpiar el código, pon nombres descriptivas y relevantes a las variables, no uses variables de más a menos de que las necesites.