Hva er faktoren til et tall?
- Faktoriell av et ikke-negativt heltall er multiplikasjonen av alle positive heltall mindre enn eller lik n. For eksempel er faktor på 6 6*5*4*3*2*1 som er 720.
- En faktor er representert med et tall og en ! merke på slutten. Det er mye brukt i permutasjoner og kombinasjoner for å beregne de totale mulige utfallene. En fransk matematiker Christian Kramp brukte først utropet.
La oss lage et faktorielt program ved å bruke rekursive funksjoner. Inntil verdien ikke er lik null, vil den rekursive funksjonen kalle seg selv. Faktoriell kan beregnes ved å bruke følgende rekursive formel.
n! = n * (n – 1)!
n! = 1 hvis n = 0 eller n = 1
Nedenfor er implementeringen:
C++
// C++ program to find> // factorial of given number> #include> using> namespace> std;> > // Function to find factorial> // of given number> unsigned> int> factorial(unsigned> int> n)> > > if> (n == 0> > // Driver code> int> main()> {> > int> num = 5;> > cout <<> 'Factorial of '> > << num <<> ' is '> << factorial(num) << endl;> > return> 0;> }> // This code is contributed by Shivi_Aggarwal> |
>
slå sammen sortering i java
>
C
// C program to find factorial of given number> #include> > // function to find factorial of given number> unsigned> int> factorial(unsigned> int> n)> {> > if> (n == 0)> > return> 1;> > return> n * factorial(n - 1);> }> > int> main()> {> > int> num = 5;> > printf> (> 'Factorial of %d is %d'> , num, factorial(num));> > return> 0;> }> |
>
>
Java
// Java program to find factorial of given number> class> Test {> > // method to find factorial of given number> > static> int> factorial(> int> n)> > {> > if> (n ==> 0> )> > return> 1> ;> > > return> n * factorial(n -> 1> );> > }> > > // Driver method> > public> static> void> main(String[] args)> > {> > int> num => 5> ;> > System.out.println(> 'Factorial of '> + num> > +> ' is '> + factorial(> 5> ));> > }> }> |
>
>
Python3
# Python 3 program to find> # factorial of given number> > # Function to find factorial of given number> def> factorial(n):> > > if> n> => => 0> :> > return> 1> > > return> n> *> factorial(n> -> 1> )> > # Driver Code> num> => 5> ;> print> (> 'Factorial of'> , num,> 'is'> ,> factorial(num))> > # This code is contributed by Smitha Dinesh Semwal> |
>
>
C#
// C# program to find factorial> // of given number> using> System;> > class> Test {> > // method to find factorial> > // of given number> > static> int> factorial(> int> n)> > {> > if> (n == 0)> > return> 1;> > > return> n * factorial(n - 1);> > }> > > // Driver method> > public> static> void> Main()> > {> > int> num = 5;> > Console.WriteLine(> 'Factorial of '> > + num +> ' is '> + factorial(5));> > }> }> > // This code is contributed by vt_m> |
>
>
PHP
// PHP program to find factorial // of given number // function to find factorial // of given number function factorial($n) { if ($n == 0) return 1; return $n * factorial($n - 1); } // Driver Code $num = 5; echo 'Factorial of ', $num, ' is ', factorial($num); // This code is contributed by m_kit ?>> |
>
gi nytt navn til katalogen i linux
>
Javascript
> // Javascript to find factorial> // of given number> > // function to find factorial> // of given number> function> factorial(n) {> > if> (n == 0)> return> 1;> > return> n * factorial(n - 1);> }> > // Driver Code> let num = 5;> document.write(> 'Factorial of '> + num +> ' is '> + factorial(num));> > // This code is contributed by Saurabh Jaiswal> > > |
>
>Produksjon
Factorial of 5 is 120>
Tidskompleksitet: På)
Hjelpeplass: På)
Iterativ løsning for å finne faktorial av et tall:
Faktoriell kan også beregnes iterativt da rekursjon kan være kostbart for store tall. Her har vi vist den iterative tilnærmingen ved å bruke både for- og while-løkker.
Tilnærming 1: Bruker For loop
Følg trinnene for å løse problemet:
- Ved å bruke en for-løkke vil vi skrive et program for å finne faktoren til et tall.
- En heltallsvariabel med verdien 1 vil bli brukt i programmet.
- Med hver iterasjon vil verdien øke med 1 til den er lik verdien angitt av brukeren.
- Faktorialet til tallet som legges inn av brukeren vil være den endelige verdien i faktavariabelen.
Nedenfor er implementeringen for tilnærmingen ovenfor:
C++
// C++ program for factorial of a number> #include> using> namespace> std;> > // function to find factorial of given number> unsigned> int> factorial(unsigned> int> n)> {> > int> res = 1, i;> > for> (i = 2; i <= n; i++)> > res *= i;> > return> res;> }> > // Driver code> int> main()> {> > int> num = 5;> > cout <<> 'Factorial of '> > << num <<> ' is '> > << factorial(num) << endl;> > return> 0;> }> > // This code is contributed by Shivi_Aggarwal> |
>
>
C
#include> > // function to find factorial of given number> unsigned> int> factorial(unsigned> int> n)> {> > int> res = 1, i;> > for> (i = 2; i <= n; i++)> > res *= i;> > return> res;> }> > int> main()> {> > int> num = 5;> > printf> (> > 'Factorial of %d is %d'> , num, factorial(num));> > return> 0;> }> |
>
>
Java
// Java program to find factorial of given number> class> Test {> > > // Method to find factorial of the given number> > static> int> factorial(> int> n)> > {> > int> res => 1> , i;> > for> (i => 2> ; i <= n; i++)> > res *= i;> > return> res;> > }> > > // Driver method> > public> static> void> main(String[] args)> > {> > int> num => 5> ;> > System.out.println(> > 'Factorial of '> + num> > +> ' is '> + factorial(> 5> ));> > }> }> |
>
>
Python3
# Python 3 program to find> # factorial of given number> > # Function to find factorial of given number> def> factorial(n):> > > res> => 1> > > for> i> in> range> (> 2> , n> +> 1> ):> > res> *> => i> > return> res> > # Driver Code> num> => 5> ;> print> (> 'Factorial of'> , num,> 'is'> ,> factorial(num))> > # This code is contributed by Smitha Dinesh Semwal> |
>
>
C#
// C# program to find> // factorial of given number> using> System;> > class> Test {> > // Method to find factorial> > // of given number> > static> int> factorial(> int> n)> > {> > int> res = 1, i;> > > for> (i = 2; i <= n; i++)> > res *= i;> > return> res;> > }> > > // Driver method> > public> static> void> Main()> > {> > int> num = 5;> > Console.WriteLine(> > 'Factorial of '> + num> > +> ' is '> + factorial(5));> > }> }> > // This code is contributed by vt_m> |
>
>
PHP
// function to find factorial // of given number function factorial( $n) { $res = 1; $i; for ($i = 2; $i <= $n; $i++) $res *= $i; return $res; } // Driver Code $num = 5; echo 'Factorial of ', $num, ' is ', factorial($num); // This code is contributed // by anuj_67. ?>> |
mylivecricket inn for live cricket
>
>
Javascript
> // JavaScript program to find factorial of given number> > > // Method to find factorial of the given number> > function> factorial(n)> > {> > var> res = 1, i;> > for> (i = 2; i <= n; i++)> > res *= i;> > return> res;> > }> > > // Driver method> > > var> num = 5;> > document.write(> 'Factorial of '> + num +> ' is '> + factorial(5));> > > // This code is contributed by shivanisinghss2110.> > > |
>
>Produksjon
Factorial of 5 is 120>
Tidskompleksitet: På)
Hjelpeplass: O(1)
Tilnærming 2: Dette eksemplet bruker en while-løkke for å implementere algoritmen og finne det faktorielle programmet.
C
// C program for factorial of a number> #include> > // function to find factorial of given number> unsigned> int> factorial(unsigned> int> n)> {> > if> (n == 0)> > return> 1;> > int> i = n, fact = 1;> > while> (n / i != n) {> > fact = fact * i;> > i--;> > }> > return> fact;> }> > int> main()> {> > int> num = 5;> > printf> (> 'Factorial of %d is %d'> , num, factorial(num));> > return> 0;> }> |
>
>
C++
// C++ program for factorial of a number> #include> using> namespace> std;> > // function to find factorial of given> // number using while loop> unsigned> int> factorial(unsigned> int> n)> {> > if> (n == 0)> > return> 1;> > int> i = n, fact = 1;> > while> (n / i != n) {> > fact = fact * i;> > i--;> > }> > return> fact;> }> > // Driver code> int> main()> {> > int> num = 5;> > cout <<> 'Factorial of '> > << num <<> ' is '> > << factorial(num) << endl;> > return> 0;> }> // This code is contributed by Shivi_Aggarwal> |
>
>
Java
// Java program to find factorial of given number> > class> Test {> > > // Method to find factorial of the given number> > static> int> factorial(> int> n)> > {> > if> (n ==> 0> )> > return> 1> ;> > int> i = n, fact => 1> ;> > while> (n / i != n) {> > fact = fact * i;> > i--;> > }> > return> fact;> > }> > > // Driver method> > public> static> void> main(String[] args)> > {> > int> num => 5> ;> > System.out.println(> > 'Factorial of '> + num> > +> ' is '> + factorial(> 5> ));> > }> }> |
>
>
Python3
shweta tiwari skuespiller
# Python 3 program to find> # factorial of given number> > # Function to find factorial of given number> def> factorial(n):> > if> (n> => => 0> ):> > return> 1> > i> => n> > fact> => 1> > > while> (n> /> i !> => n):> > fact> => fact> *> i> > i> -> => 1> > > return> fact> > # Driver Code> num> => 5> ;> print> (> 'Factorial of'> , num,> 'is'> ,> factorial(num))> > # This code is contributed by Smitha Dinesh Semwal> |
>
>
C#
// C# program to find> // factorial of given number> using> System;> > class> Test {> > // Method to find factorial> > // of given number> > static> int> factorial(> int> n)> > {> > if> (n == 0)> > return> 1;> > int> i = n, fact = 1;> > while> (n / i != n) {> > fact = fact * i;> > i--;> > }> > return> fact;> > }> > > // Driver method> > public> static> void> Main()> > {> > int> num = 5;> > Console.WriteLine(> > 'Factorial of '> + num> > +> ' is '> + factorial(5));> > }> }> |
>
>
Javascript
> > // JavaScript Program to implement> > // the above approach> > // function to find factorial of given> > // number using while loop> > function> factorial(n) {> > if> (n == 0)> > return> 1;> > let i = n, fact = 1;> > while> (Math.floor(n / i) != n) {> > fact = fact * i;> > i--;> > }> > return> fact;> > }> > > // Driver code> > let num = 5;> > document.write(> 'Factorial of '> > + num +> ' is '> > + factorial(num) +> ' '> );> > // This code is contributed by Potta Lokesh> > > > |
>
>Produksjon
Factorial of 5 is 120>
Tidskompleksitet: PÅ)
Hjelpeplass: O(1)
Tilnærming 3: EN ternær operatør kan betraktes som en forkortelse for en if…else-setning. Betingelsene er gitt, sammen med uttalelser som skal utføres basert på dem. Her er programmet for faktoriell bruk av en ternær operatør.
C++
// C++ program to find factorial of given number> #include> using> namespace> std;> > int> factorial(> int> n)> > > // single line to find factorial> > return> (n == 1> > // Driver Code> int> main()> {> > int> num = 5;> > cout <<> 'Factorial of '> << num <<> ' is '> << factorial(num);> > return> 0;> }> > // This code is contributed by shivanisinghss2110> |
>
>
C
// C++ program to find factorial of given number> #include> > int> factorial(> int> n)> n == 0) ? 1 : n * factorial(n - 1);> > > // Driver Code> int> main()> {> > int> num = 5;> > printf> (> 'Factorial of %d is %d'> , num, factorial(num));> > return> 0;> }> > // This code is contributed by Rithika palaniswamy.> |
>
>
Java
// Java program to find factorial> // of given number> class> Factorial {> > > int> factorial(> int> n)> > n ==> 0> ) ?> 1> : n * factorial(n -> 1> );> > > > > // Driver Code> > public> static> void> main(String args[])> > {> > Factorial obj => new> Factorial();> > int> num => 5> ;> > System.out.println(> > 'Factorial of '> + num> > +> ' is '> + obj.factorial(num));> > }> }> > // This code is contributed by Anshika Goyal.> |
>
>
Python3
# Python 3 program to find> # factorial of given number> > def> factorial(n):> > > # single line to find factorial> > return> 1> if> (n> => => 1> or> n> => => 0> )> else> n> *> factorial(n> -> 1> )> > > # Driver Code> num> => 5> print> (> 'Factorial of'> , num,> 'is'> ,> > factorial(num))> > # This code is contributed> # by Smitha Dinesh Semwal.> |
>
>
C#
// C# program to find factorial> // of the given number> using> System;> > class> Factorial {> > > int> factorial(> int> n)> > > > > // Driver Code> > public> static> void> Main()> > {> > Factorial obj => new> Factorial();> > int> num = 5;> > > Console.WriteLine(> > 'Factorial of '> + num> > +> ' is '> + obj.factorial(num));> > }> }> > // This code is contributed by vt_m.> |
>
>
PHP
// PHP program to find factorial // of given number function factorial( $n) $n == 0) ? 1: $n * factorial($n - 1); // Driver Code $num = 5; echo 'Factorial of ', $num, ' is ', factorial($num); // This code is contributed by anuj_67. ?>> |
>
>
Javascript
> > // JavaScript program to find factorial of given number> function> factorial(n)> > > // Driver Code> > > var> num = 5;> > document.write(> 'Factorial of '> +num +> ' is '> + factorial(num));> > // This code is contributed by shivanisinghss2110.> > > |
>
>Produksjon
pandas loc
Factorial of 5 is 120>
Tidskompleksitet: På)
Hjelpeplass: På)
Problemer med å skrive kode for faktoriell
Når verdien av n endringer øker med 1, øker verdien av faktoren med n. Så variabelen som lagrer verdien av faktorial bør ha en stor størrelse. Følgende er verdien av n hvis faktor kan lagres i den respektive størrelsen.
1. heltall –> n<=12
2. lang lang int –> n<=19
Fra dataene ovenfor kan vi se at en veldig liten verdi av n kan beregnes på grunn av den raskere veksten av faktorfunksjonen. Vi kan imidlertid finne modverdien til faktorial med større verdier ved å ta mod ved hvert trinn.
Løsningen ovenfor forårsaker overløp for store antall. Vennligst referer til faktorial av stort tall for en løsning som fungerer for store tall.
Vennligst skriv kommentarer hvis du finner noen feil i koden/algoritmen ovenfor, eller finn andre måter å løse det samme problemet på.