Aquí hay 2 programas para calcular factorial y suma de n números que he programado en C, individualmente.
Sería útil para usted si usted mismo los integra en uno, ya que eso necesitaría una comprensión adecuada de ambos conceptos.
Procedimiento: Primero puede calcular los factoriales uno por uno y almacenarlos en una matriz y luego calcular la suma de los elementos de la matriz.
- ¿La recursividad es más rápida que los bucles en MATLAB?
- ¿Qué papel juega la comprensión de los algoritmos y las estructuras de datos en la construcción de proyectos, conseguir un trabajo y hacer su trabajo?
- Cómo calcular óptimamente grandes factoriales de orden 10 ^ 5 para operaciones repetidas (por ejemplo, encontrar permutaciones)
- ¿Vale la pena publicar mi algoritmo?
- ¿Debería seleccionar siempre el algoritmo con el menor orden de complejidad?
Nota: Aquí el tipo de datos que he usado es int y, por lo tanto, solo funcionará para valores pequeños de n. Para calcular la suma de factoriales de mayor número, es posible que deba utilizar BIGINTEGER en Java.
- Programa para encontrar factorial de un número entero n:
- utilizando el método iterativo (bucles)
/ * Factorial de un número * /
#include
int main ()
{
int hecho = 1, num, i;
printf (“Ingrese el número: \ n”);
scanf (“% d”, & num);
para (i = 1; i <= num; i ++)
{
hecho = hecho * i;
}
printf (“\ nFactorial de% d es:% d \ n \ n”, num, hecho);
devuelve 0;
}
salida de muestra:
- usando recursividad
// Factorial usando recursividad
#include
hecho de hecho (int);
int main ()
{
int num, f;
printf (“\ n \ nIntroduzca un número \ n”);
scanf (“% d”, & num);
f = hecho (num);
printf (“\ n \ nFactorial de% d es% d \ n \ n”, num, f);
devuelve 0;
}
hecho int (int aj)
{
si (aj == 1 || aj == 0)
retorno 1;
más
return (aj * fact (aj-1));
}
salida de muestra:
2. Programa para encontrar la suma de los elementos de una matriz:
#include
int main ()
{
int n, suma = 0, c, matriz [100];
printf (“Ingrese el número de enteros que desea agregar \ n”);
scanf (“% d”, & n);
printf (“Ingrese% d enteros \ n \ n”, n);
para (c = 0; c <n; c ++)
{
scanf (“% d”, & array [c]);
suma + = matriz [c];
}
printf (“\ n \ nSum =% d \ n \ n”, suma);
devuelve 0;
}
salida de muestra:
Espero eso ayude.
¡Feliz codificación!