
3.0 / 5
Un ejercicio de factorial consiste en calcular el producto de todos los números naturales desde 1 hasta un número dado, es decir:
factorial(n) = n * (n-1) * (n-2) * … * 1
Por ejemplo, el factorial de 5 (denotado como 5!) es igual a 5 * 4 * 3 * 2 * 1 = 120.
Aquà hay una solución para calcular el factorial de un número dado en varios lenguajes de programación:
def factorial(n): if n == 0: return 1 return n * factorial(n-1) print(factorial(5)) # imprime 120
public class Main { public static int factorial(int n) { if (n == 0) { return 1; } return n * factorial(n-1); } public static void main(String[] args) { System.out.println(factorial(5)); // imprime 120 } }
function factorial(n) { if (n === 0) { return 1; } return n * factorial(n-1); } console.log(factorial(5)); // imprime 120
#include <iostream> using namespace std; int factorial(int n) { if (n == 0) { return 1; } return n * factorial(n-1); } int main() { cout << factorial(5) << endl; // imprime 120 return 0; }
using System; namespace Factorial { class Program { static int Factorial(int n) { if (n == 0) { return 1; } return n * Factorial(n-1); } static void Main(string[] args) { Console.WriteLine(Factorial(5)); // imprime 120 } } }
#!/usr/bin/perl sub factorial { my $n = shift; return 1 if $n == 0; return $n * factorial($n-1); } print factorial(5), "\n"; # imprime 120
import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( body: FactorialCalculator(), ), ); } } class FactorialCalculator extends StatefulWidget { @override _FactorialCalculatorState createState() => _FactorialCalculatorState(); } class _FactorialCalculatorState extends State<FactorialCalculator> { final _formKey = GlobalKey<FormState>(); int _input; int _result; void _calculateFactorial() { _result = factorial(_input); } int factorial(int n) { if (n == 0) { return 1; } return n * factorial(n - 1); } @override Widget build(BuildContext context) { return Form( key: _formKey, child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ TextFormField( validator: (value) { if (value.isEmpty) { return 'Por favor ingrese un número'; } return null; }, onChanged: (value) { setState(() { _input = int.parse(value); }); }, keyboardType: TextInputType.number, ), RaisedButton( onPressed: () { if (_formKey.currentState.validate()) { _calculateFactorial(); } }, child: Text('Calcular'), ), Text(_result == null ? '' : 'Factorial: $_result'), ], ), ); } }
Espero que esto te sea útil.