Calcular factorial de un numero en JAVA
Hoy día 1 de enero de 2013, empezamos el año con un ejercicio resuelto muy sencillo, calcular el factorial de un número dado. Para ello solo debemos tener en cuenta la definición de factorial, que a groso modo es el producto de todos los números enteros positivos naturales desde 1 hasta n.
n! = 1 x 2 x 3 x ... x (n - 1) x nSin más os dejo con este sencillo ejercicio, y ya sabéis, si tenéis alguna duda, comentad aquí abajo ;).
public class Factorial { public static void main(String[] args) { System.out.println(factorial(5)); } public static int factorial(int n) { int resultado = 1; for (int i = 1; i <= n; i++) { resultado *= i; } return resultado; } }
disculpe no hay que poner:
ResponderEliminarString loQueLeoDelTeclado1;
BufferedReader conexion = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Introduzca un entero: ");
loQueLeoDelTeclado1 = conexion.readLine();
Y= Integer.parseInt(loQueLeoDelTeclado1);
//Fin código necesario para leer del teclado.
Gracias.
La finalidad del ejemplo es calcular el factorial de un número dado de modo que no es necesario que lo introduzca el usuario. De este modo se crea una función llamada factorial que recibe un int dando igual cual sea su procedencia, esto hace que nuestra función sea totalmente reutilizable.
EliminarPor ejemplo para el caso de calcular el factorial de un número introducido por el usuario (para esto se podría utilizar tu código), para un número recibido en un socket TCP, un número leido de un fichero, etcétera.
Tu código es correcto, lee un número introducido por el usuario por entrada estandar, pero la finalidad del ejercicio era resolver el problema dándonos igual de donde procedan los datos de entrada.
Saludos.
Muchas Gracias Muchacho, por solucionarme la duda. Saludes desde Almeria.
Eliminar.i.
Eliminarsi, esa era mi misma duda, por favor responda cuanto antes, gracias
ResponderEliminarcomo calculas el factorial cuando se introduce desde el teclado
ResponderEliminarUtiliza el código del primer comentario y mi código, uno lee del teclado y el otro calcula el factorial de un número dado.
EliminarSaludos.
for (int counter = 0; counter <= 10; counter++){
EliminarSystem.out.printf("%d! = %d\n", counter,
factorial(counter));
}
}
public static long factorial(long number) {
if (number <= 1)
return 1;
else
return number * factorial(number - 1);
}
}
En el main, para probarlo es mas facil si se pone este codigo, o por lo menos mas entendible para mi.. :D
ResponderEliminarScanner sc = new Scanner(System.in);
System.out.println("Introduzca un numero para calcular su factorial");
Integer a = sc.nextInt();
System.out.println(factorial(a));
sc.close();
pero marca dos errores, porque?
EliminarSystem.out.println(factorial(a));
sc.close();
Copia y pega los errores que estás obteniendo y quizás pueda echarte una mano.
Eliminarquiero hacerlo con JOptionPane input y show
ResponderEliminarquiero hacerlo con JOptionPane input y show
ResponderEliminarpublic class Factorial {
Eliminarpublic static void main(String[] args) {
int n ;
String r="";
n=Integer.parseInt(JOptionPane.showInputDialog(" Factorial de numero: "));
// System.out.println(factorial(n));
JOptionPane.showMessageDialog(null, "Factorial de es igual " +(factorial(n)));
}
public static int factorial(int n) {
int resultado = 1;
for (int i = 1; i <= n; i++) {
resultado *= i;
}
return resultado;
}
}
import java.util.Scanner;
ResponderEliminarpublic static void main(String args[]){
Scanner s = new Scanner(System.in);
int suma = 1;
System.out.print("ingrese el Numero ");
int n = s.nextInt();
for (int i = n; i>1; i--){
suma = suma * i;
}
System.out.println("el Factorial de el numero" +n+ " es " + suma );
}
}
esto es para cuando se te pide el factorial de un numero dado por el usuario
ResponderEliminarimport java.util.Scanner;
public static void main(String[] args) {
/*programa que muestre el factorial de un numero dado por el usuario*/
Scanner leer= new Scanner(System.in);
int n,fact = 1,i;
System.out.println("dame un numero que quieras y sacare su factorial");
n=leer.nextInt();
for (i=n;i>=1;i--)
{
fact=fact*i;
}
System.out.println("el factorial de tu numero es -> "+ fact);
}
}
espero y les sirva :D
muchas gracias por tu ayuda T-T
EliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarDg
ResponderEliminaralguien puede indicarme una pagina o mas bien enviarme un documento para la progamacion en java porfavor y muchas gracias.
ResponderEliminarSI SI SI SI....
Eliminarfor (int counter = 0; counter <= 10; counter++){
System.out.printf("%d! = %d\n", counter,
factorial(counter));
}
}
public static long factorial(long number) {
if (number <= 1)
return 1;
else
return number * factorial(number - 1);
}
}
AHI ESTA CON ESTO ARREGLAS EL MUNDO CAMARA ;)
alguien puede indicarme una pagina o mas bien enviarme un documento para la progamacion en java porfavor y muchas gracias.
ResponderEliminarillolococococococooc
EliminarDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
ResponderEliminarFISTA EN CASA DE IVETTE EN GUANAMELA O SIIIIII¿ HOY A LAS OCHO?
ResponderEliminarENTRADA LIBRE
hola .l.
ResponderEliminarLo que hay liado aqui en los comentarios es sublime (sublime text). JAJAJAJAJAJ
ResponderEliminar/* 50. Leer una secuencia de 10 números y almacenar en un vector sus factoriales.*/
ResponderEliminarpackage sweetie_bot;
import java.util.Scanner;
public class Ejercicio_50 {
public static void main (String [] args){
Scanner Leer = new Scanner (System.in);
int v[]; int f[]; int a = 1;
v = new int [10]; f = new int [10];
System.out.println("\tBIENVENIDO");
System.out.println("Por Favor, ingrese 10 elementos\n");
for (int i=0; i<10; i++){
v[i] = Leer.nextInt();
}
for (int i=0; i<10; i++){
a = 1;
for(int j=v[i]; j>=1; j--){
a = (a * j);
f[i] = a;
}
}
System.out.println("\nLos Factoriales son");
for (int i=0; i<10; i++){
System.out.println(f[i]);
}
}
}
Hola disculpa como lo puedes hacer igual pero que lo haga en 3 procesos, espero me respondas
ResponderEliminarhola
ResponderEliminarSi bien muestra el resultado, pero como hariamos para mosrar la cadena del factorial del número .¿Cómo mostrar el resultado de esta fomra?
ResponderEliminar" El factorial de 5 (1x2x3x4x5)= 120"
Como hacerlo
EliminarCrear una función que retorne el factorial del 1 al 5
ResponderEliminary para tener una numercacion de puros factoriales ?
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarHola amigos!
ResponderEliminarMe podrian ayudar a hacer un codigo con scanner donde calcule el factorial del 1! al 10! usando for
y que me aparezca el resultado asi:
1!= 1
2!= 2
3!= 3
4!= 6
5!= 24
6!= 720
7!= 5040
8!= 40320
9!= 362880
10!= 3628800
Por favor...
Como se calcula el factorial de un numero que se ha convertido a array?
ResponderEliminarSaben como puedo imprimir los valores que se multiplican para crear el factorial?
ResponderEliminarCómo puedo calcular el factorial de un número. , Pero queda la vez me desglose todo
ResponderEliminarEl procedimiento