• Home
  • C++
  • Calcular factorial en distintos lenguajes de programación
3.0 / 5

Calcular factorial en distintos lenguajes de programación

799
3

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:

  • Python:
def factorial(n):
    if n == 0:
        return 1
    return n * factorial(n-1)

print(factorial(5))  # imprime 120
  • Java:
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
    }
}
  • JavaScript:
function factorial(n) {
    if (n === 0) {
        return 1;
    }
    return n * factorial(n-1);
}

console.log(factorial(5));  // imprime 120
  • C++:
#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;
}
  • C#:
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
        }
    }
}
  • Perl:
#!/usr/bin/perl

sub factorial {
    my $n = shift;
    return 1 if $n == 0;
    return $n * factorial($n-1);
}

print factorial(5), "\n";  # imprime 120
  • Flutter: Para calcular el factorial de un número ingresado por el usuario en Flutter, puedes usar el siguiente código:
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.

THIS IS AN OPTIONAL

Related Post

LEAVE YOUR COMMENTS