|                                                                                                        | 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 | <?php
namespace App\Commands;
use Illuminate\Console\Scheduling\Schedule;
use LaravelZero\Framework\Commands\Command;
class Factorial extends Command
{
    /**
     * The signature of the command.
     *
     * @var string
     */
    protected $signature = 'factorial {numero} {--grafica}';
    /**
     * The description of the command.
     *
     * @var string
     */
    protected $description = 'este comando es para calcular el factorial de un numero';
    private function factorial(int $numero, bool $operaciones = false): int
    {
        $factorial=1;
        $cadena = "";
        for ($i = $numero; $i > 0; $i--)
        {
            $cadena .= $factorial. ' * '.$i;
            $factorial = $factorial * $i;
            $cadena .= ' = '.$factorial."\n";
        }
        if ($operaciones)
            $this->line($cadena);
        return $factorial;
    }
    /*
    private static long factorial(int n1) {
		long miNum = 1;
		for(int i=1;i<=n1;i++) {
			miNum*=i;
		}
		return miNum;
	}
    def factorial(num):
    if num > 0:
        # Doing the factorial using recursion
        return int(num*factorial(num-1))
    else:
        return 1
        public static void multiplicar(int iTabla, int iNumero){
	if (iNumero>1)
		multiplicar(iTabla,iNumero-1);
	System.out.println(iTabla + "x" + iNumero + "=" + iTabla*iNumero);
}
    */
    private function tablaMultiplicar($tabla, $numero){
        if ($numero > 1)
            $this->tablaMultiplicar($tabla, $numero-1);
        $this->line("{$tabla} X {$numero} = ".$tabla*$numero);
    }
    private function factorialRecursivo(int $numero, bool $operaciones = false): int
    {
        if ($numero > 0) {
            return $numero*$this->factorialRecursivo($numero-1);
        }
        else
            return 1;
    }
    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        $this->title('Calculo de factorial');
        $this->info('
            El factorial de un entero positivo n, el factorial de n o n
            factorial se define en principio como el producto de todos los números
            enteros positivos desde 1 hasta n.
        ');
        $factorial = $this->factorialRecursivo($this->argument('numero'), $this->option('grafica'));
        $this->line("El numero factorial es el siguiente = {$factorial}");
        $this->line("Su tabla de multiplicar es:");
        $this->tablaMultiplicar($this->argument('numero'), 10);
    }
    /**
     * Define the command's schedule.
     *
     * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
     * @return void
     */
    public function schedule(Schedule $schedule): void
    {
        // $schedule->command(static::class)->everyMinute();
    }
}
 |