Fecha y hora actual: Viernes 31 Oct 2014 00:50
Índice del Foro

Foros de programación informática, diseño gráfico y Web

En esta comunidad intentaremos dar soporte de programación a todos los niveles, desde principiantes a profesionales de la informática, desarrollo de programas, programación web y mucho más.

Calcular el factorial de un numero

Responder al Tema

Índice del Foro > Java > Calcular el factorial de un numero

Autor Mensaje
quatreduros
Usuario Iniciado


Registrado: 28 Jul 2009
Mensajes: 17

Mensaje Publicado: Viernes 08 Oct 2010 09:36

Título del mensaje: Calcular el factorial de un numero

Responder citando

Hola buenos días, después de crear el programa en el IDE Eclipse se compila y se ejecuta OK pero el problema que me da es que no multiplica uno a uno sino que va sumando.

Ejemplo: 4!=4*3*2*1 mientras que el programa me hace 4+3+2+1,

sabeis porque¿?¿?

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Karlos
Usuario Inquieto


Registrado: 01 Feb 2009
Mensajes: 51

Mensaje Publicado: Viernes 08 Oct 2010 10:57

Título del mensaje: Re: Calcular el factorial de un numero

Responder citando

Hola

No se donde tienes el problema ya que no has expuesto el codigo para echarle un vistazo.Pero has usado la recursividad?

Yo te podria poner una solucion, lo malo que yo de java estoy cojido con pinzas asi que te lo pondre en general:

int factorial(int n)
Despues del caso base

return n*factorial(n-1);



Saludos

Volver arriba
Ver perfil del usuario Enviar mensaje privado
quatreduros
Usuario Iniciado


Registrado: 28 Jul 2009
Mensajes: 17

Mensaje Publicado: Sábado 09 Oct 2010 11:08

Título del mensaje: Re: Calcular el factorial de un numero

Responder citando

Muchas gracias, ya no me acordaba de la recursividad en java(dentro del método hacer referencia al mismo método), ya hace un añito que no práctico.

Aquí dejo el código resultado:

public static int calculoFactorial(int numero){
int resultado;
/*Calcular factorial mientras i<=n
n!=n x (n-i)!
*/
if(numero==0){
return 1;
}else{
resultado= numero* calculoFactorial(numero-1);
}//if()
return resultado;
}//method()

Ahora tengo otro problemilla, estoy haciendo un método para hacer la potencia de un número:

public static int potencia(int base,int exp){
int resul;

if(exp==0 || base==1 ){
return 1;
}else{
resul=base*potencia(base,(exp-1));
}//if()
return resul;
}//method()

CUANDO INTENTO UTILIZAR EL MÉTODO POTENCIA ME DICE QUE DEBO INICIALIZAR LAS VARIABLES BASE Y EXP.

public static void main ( String []args)throws IOException{
BufferedReader lectura = new BufferedReader(new InputStreamReader(System.in));
int base;;
System.out.println("dime base "+base); ------>exige inicializar base
base =Integer.parseInt(lectura.readLine());

BufferedReader lectura2 = new BufferedReader(new InputStreamReader(System.in));
int exp;
System.out.println("dime base "+exp); ---->exige inicializar exp
exp=Integer.parseInt(lectura2.readLine());

int pot;
pot=potencia(base,exp);

}//MAIN

Mi objetivo era sacar un mensaje que pidiese la base y otro que pidiese el exponente para despues calcular la potencia.

AYUDA!!
gracias,

Volver arriba
Ver perfil del usuario Enviar mensaje privado
WhiteSkull
CoAdmin


Registrado: 20 Mar 2009
Mensajes: 2896
Ubicación: y*width+x

Mensaje Publicado: Sábado 09 Oct 2010 14:58

Título del mensaje: Re: Calcular el factorial de un numero

Responder citando

Por favor intenta usar la etiqueta code para contener el código que deseas mostrar.

Sobre el asunto que comentas, no es necesario que incluyas las variables junto a la cadenas que visualizas, ya que quien toma el valor es la línea siguiente que usa el readline().

de nada...

Volver arriba
Ver perfil del usuario Enviar mensaje privado Visitar sitio web del autor
cros



Registrado: 25 Feb 2011
Mensajes: 3

Mensaje Publicado: Viernes 25 Feb 2011 07:00

Título del mensaje: Re: Calcular el factorial de un numero

Responder citando

supongo que lo habeis solucionad ya pero aqui os lo dejo y funciona (se necesita el Keyboard.class )

Código:

import cs1.*;
public class algo {
public static int calculoFactorial(int numero){
int resultado;
/*Calcular factorial mientras i<=n
n!=n x (n-i)!
*/
if(numero==0){
return 1;
}else{
resultado= numero* calculoFactorial(numero-1);
}//if()
return resultado;
}//method()


public static int potencia(int base,int exp){
int resul;

if(exp==0 || base==1 ){
return 1;
}else{
resul=base*potencia(base,(exp-1));
}//if()
return resul;
}//method()



public static void main ( String []args){

int base=0;
System.out.println("dime base "+base);
base =Keyboard.readInt();
 
int exp=0;
System.out.println("dime base "+exp);
exp=Keyboard.readInt();

int pot;
pot=potencia(base,exp);

}
}

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Responder al Tema
Mostrar mensajes anteriores:   
Ir a:  
Todas las horas están en GMT + 2 Horas

Temas relacionados

Tema Autor Foros Respuestas Publicado
El foro no contiene ningún mensaje nuevo

Duda c# este ejercicio bucle for calcular media...

Sixtoex C, C#, Visual C++ 1 Martes 14 Oct 2014 20:57 Ver último mensaje
El foro no contiene ningún mensaje nuevo

c# (programa para calcular calificaciones) Duda.

wind C, C#, Visual C++ 2 Miércoles 04 Jun 2014 17:29 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Ecuación para obtener el número decimal que...

Tachikomaia Programación en general 0 Lunes 19 May 2014 09:48 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Descomposicion de un numero

viqee C, C#, Visual C++ 1 Lunes 12 May 2014 23:59 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Convertir de letra(mes) al número del mes [leng...

DanielC C, C#, Visual C++ 2 Sábado 19 Abr 2014 04:41 Ver último mensaje
Panel de Control
No puede crear mensajes, No puede responder temas, No puede editar sus mensajes, No puede borrar sus mensajes, No puede votar en encuestas,