PS 3.39

Función F(X, Y, Z) con Factoriales

Desarrolla un programa que evalúe K veces la función F(X, Y, Z) definida por casos: si X > 0 ∧ Y > 0 ∧ Z > 0 entonces F = Z!/Y!, si solo X > 0 entonces F = X!, en cualquier otro caso F = 1. El algoritmo lee K, ejecuta un ciclo (I ← 1 hasta I ≤ K), lee X, Y, Z en cada iteración, evalúa las condiciones anidadas y calcula el resultado correspondiente.

📐 Fórmula de la Función F(X, Y, Z)

$$ F(X, Y, Z) = \begin{cases} \displaystyle\frac{Z!}{Y!} & \text{si } X > 0 \land Y > 0 \land Z > 0 \\[12pt] X! & \text{si } X > 0 \\[12pt] 1 & \text{en cualquier otro caso} \end{cases} $$

Donde el factorial se define como: \(n! = \prod_{i=1}^{n} i\) para \(n > 0\)

Tip

En este ejercicio utilizaremos una estructura condicional if-else if-else para validar que N sea mayor que 0 antes de realizar el cálculo. Si N es menor o igual a 0, mostraremos un mensaje de error. Implementa una función auxiliar para calcular factoriales.

Requisitos

  • Leer K (número de veces que se calculará la función)
  • Ejecutar ciclo I ← 1 hasta I ≤ K: leer X, Y, Z
  • Evaluar condiciones: Si X > 0 ∧ Y > 0 ∧ Z > 0 → F ← Z!/Y!, sino si X > 0 → F ← X!, sino F ← 1
  • Mostrar F para cada iteración
  • Implementar función auxiliar para calcular factoriales

Ejemplo de uso esperado

// Entrada:
========================================
Función F(X, Y, Z) con Factoriales
========================================
Ingrese el número de veces que se calculará la función (K): 3

--- Cálculo #1 ---
Ingrese el valor de X: 5
Ingrese el valor de Y: 3
Ingrese el valor de Z: 4
El resultado de F(5, 3, 4) es: 8.0000
  // 4!/3! = 24/6 = 4.0 (pero con todos positivos)

--- Cálculo #2 ---
Ingrese el valor de X: 4
Ingrese el valor de Y: 0
Ingrese el valor de Z: 2
El resultado de F(4, 0, 2) es: 24.0000
  // Solo X > 0, entonces F = 4! = 24

--- Cálculo #3 ---
Ingrese el valor de X: -2
Ingrese el valor de Y: 5
Ingrese el valor de Z: 3
El resultado de F(-2, 5, 3) es: 1.0000
  // X ≤ 0, entonces F = 1

Notas rápidas

Detalles importantes:

  • La función tiene 3 casos mutuamente excluyentes (if-else if-else)
  • Caso 1: X > 0 AND Y > 0 AND Z > 0 → F = Z! / Y!
  • Caso 2: X > 0 (pero no se cumple caso 1) → F = X!
  • Caso 3: Cualquier otro caso (X ≤ 0) → F = 1
  • Implementa una función auxiliar calcularFactorial(int n) que retorne long
  • Usa double para F para manejar divisiones con decimales

📊 Diagrama de Flujo