Java-programma om de faculteit van een nummer te vinden

In dit programma leer je om de faculteit van een getal te vinden met behulp van de for en while-lus in Java.

Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende Java-programmeeronderwerpen:

  • Java voor Loop
  • Java while en do … while Loop

De faculteit van een positief getal n wordt gegeven door:

 faculteit van n (n!) = 1 * 2 * 3 * 4 *… * n 

Voorbeeld 1: Vind de faculteit van een getal met de lus for

 public class Factorial ( public static void main(String() args) ( int num = 10; long factorial = 1; for(int i = 1; i <= num; ++i) ( // factorial = factorial * i; factorial *= i; ) System.out.printf("Factorial of %d = %d", num, factorial); ) )

Uitvoer

 Factoriaal van 10 = 3628800

In dit programma hebben we for loop gebruikt om door alle getallen tussen 1 en het opgegeven getal num (10) te lopen, en het product van elk getal tot num wordt opgeslagen in een variabele faculteit.

We hebben long gebruikt in plaats van int om grote resultaten van faculteit op te slaan. Het is echter nog steeds niet groot genoeg om de waarde van grotere getallen op te slaan (zeg 100).

Voor resultaten die niet in een lange variabele kunnen worden opgeslagen, gebruiken we BigIntegerde in java.mathbibliotheek gedeclareerde variabele .

Voorbeeld 2: Vind de faculteit van een getal met BigInteger

 import java.math.BigInteger; public class Factorial ( public static void main(String() args) ( int num = 30; BigInteger factorial = BigInteger.ONE; for(int i = 1; i <= num; ++i) ( // factorial = factorial * i; factorial = factorial.multiply(BigInteger.valueOf(i)); ) System.out.printf("Factorial of %d = %d", num, factorial); ) )

Uitvoer

 Factorial van 30 = 265252859812191058636308480000000

Hier gebruiken longwe in plaats van BigIntegervariabele faculteit.

Omdat we *niet kunnen worden gebruikt BigInteger, gebruiken we in plaats daarvan multiply()voor het product. Ook moet num worden gecast BigIntegervoor vermenigvuldiging.

Evenzo kunnen we ook een while-lus gebruiken om dit probleem op te lossen.

Voorbeeld 3: Vind de faculteit van een getal met de while-lus

 public class Factorial ( public static void main(String() args) ( int num = 5, i = 1; long factorial = 1; while(i <= num) ( factorial *= i; i++; ) System.out.printf("Factorial of %d = %d", num, factorial); ) )

Uitvoer

 Factoriaal van 5 = 120

In het bovenstaande programma moeten we, in tegenstelling tot een for-lus, de waarde van i binnen de body van de lus verhogen.

Hoewel beide programma's technisch correct zijn, is het in dit geval beter om for loop te gebruiken. Het is omdat het aantal iteraties (tot aantal) bekend is.

Bezoek deze pagina om te leren om de faculteit van een getal te vinden met behulp van recursie.

Interessante artikelen...