Desafío: Método con Parámetros
En este desafío, necesitas crear un nuevo método llamado factorial
que tendrá un parámetro llamado n
de tipo int
. Debe calcular el factorial del valor pasado n
y mostrar el resultado.
Se proporciona el esquema del programa, completa los detalles faltantes para finalizar el programa:
main.cs
using System; namespace ConsoleApp { internal class Program { static void factorial(___) { if(n == 0) { Console.WriteLine(___); } else if (n > 0) { int result = 1; for (int i = 2; i <= ___; i++) { ___ } Console.WriteLine(___); } else { Console.WriteLine(___); } } static void Main(string[] args) { factorial(-1); factorial(0); factorial(5); } } }
- Ya realizamos un ejercicio relacionado con factorial en una de las secciones anteriores, pero para recapitular, el factorial de un número es el producto de todos los números hasta ese número.
Por ejemplo, el factorial de
5
es1 x 2 x 3 x 4 x 5
, que es120
; de manera similar, el factorial de4
es24
. Hay dos reglas adicionales:- El factorial de
0
es1
; - El factorial de un número negativo es
undefined
, por lo que debe mostrarundefined
.
- El factorial de
- Para resolver la tarea, sigue los siguientes pasos:
- Completa el espacio en blanco para el método
factorial
con la definición de parámetro adecuada. Se espera un entero. Determina cuál debe ser el nombre del parámetro leyendo el código interno del método; - Si el argumento pasado es
0
, debe mostrar una salida fija que se menciona en las pistas; - El bucle debe continuar hasta (incluyendo el número) el entero pasado. La variable
result
debe actualizarse con el producto de sí misma con la variable del bucle. En resumen:result *= i
; - Si el número de entrada es negativo (inválido), debe mostrar "undefined".
- Completa el espacio en blanco para el método
main.cs
using System; namespace ConsoleApp { internal class Program { static void factorial(int n) { if(n == 0) { Console.WriteLine(1); } else if (n > 0) { int result = 1; for (int i = 2; i <= n; i++) { result *= i; } Console.WriteLine(result); } else { Console.WriteLine("undefined"); } } static void Main(string[] args) { factorial(-1); factorial(0); factorial(5); } } }
¿Todo estuvo claro?
¡Gracias por tus comentarios!
Sección 6. Capítulo 5