Java-program för att hitta faktorn för ett nummer

I det här programmet lär du dig att hitta ett nummer som använder ett och medan loop i Java.

För att förstå detta exempel bör du ha kunskap om följande Java-programmeringsämnen:

  • Java för Loop
  • Java medan och gör … medan Loop

Faktorn för ett positivt tal n ges av:

 fabrik av n (n!) = 1 * 2 * 3 * 4 * … * n 

Exempel 1: Hitta faktorn för ett tal med hjälp av for loop

 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); ) )

Produktion

 Faktor av 10 = 3628800

I det här programmet har vi använt för loop för att slinga igenom alla nummer mellan 1 och det angivna numret num (10), och produkten av varje nummer till num lagras i en variabel faktoria.

Vi har använt länge istället för int för att lagra stora resultat av faktoria. Det är dock fortfarande inte tillräckligt stort för att lagra värdet på större nummer (säg 100).

För resultat som inte kan lagras i en lång variabel använder vi BigIntegervariabel som deklareras i java.mathbiblioteket.

Exempel 2: Hitta faktorn för ett nummer med 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); ) )

Produktion

 Faktor om 30 = 265252859812191058636308480000000

Här, istället för long, använder vi BigIntegervariabelt faktoria.

Eftersom, *inte kan användas med BigInteger, använder vi istället multiply()för produkten. Dessutom ska num kastas till BigIntegerför multiplikation.

På samma sätt kan vi också använda en stundslinga för att lösa detta problem.

Exempel 3: Hitta faktorn för ett tal med hjälp av en loop

 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); ) )

Produktion

 Faktor 5 = 120

I ovanstående program, till skillnad från en for-loop, måste vi öka värdet på i inuti loopens kropp.

Även om båda programmen är tekniskt korrekta är det bättre att använda för loop i det här fallet. Det beror på att antalet iteration (upp till num) är känt.

Besök den här sidan för att lära dig att hitta ett faktum för ett nummer med rekursion.

Intressanta artiklar...