Java-program til at finde faktor for et tal

I dette program lærer du at finde et nummer på et nummer, der bruger for og while-loop i Java.

For at forstå dette eksempel skal du have kendskab til følgende Java-programmeringsemner:

  • Java til Loop
  • Java mens og gør … mens Loop

Faktoriet for et positivt tal n er givet ved:

 faktor af n (n!) = 1 * 2 * 3 * 4 * … * n 

Eksempel 1: Find faktor for et tal ved hjælp af 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 af 10 = 3628800

I dette program har vi brugt til loop til loop gennem alle tal mellem 1 og det givne nummer num (10), og produktet af hvert nummer indtil num er gemt i en variabel faktor.

Vi har brugt længe i stedet for int til at gemme store resultater af faktoriel. Det er dog stadig ikke stort nok til at gemme værdien af ​​større tal (for eksempel 100).

For resultater, der ikke kan lagres i en lang variabel, bruger vi BigIntegervariablen, der er deklareret i java.mathbiblioteket.

Eksempel 2: Find faktor for et nummer ved hjælp af 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 for 30 = 265252859812191058636308480000000

Her i stedet for longbruger vi BigIntegervariabel faktor.

Da det *ikke kan bruges med BigInteger, bruger vi i stedet multiply()til produktet. Også num skal kastes til BigIntegerfor multiplikation.

På samme måde kan vi også bruge en while-løkke til at løse dette problem.

Eksempel 3: Find faktor for et tal ved hjælp af mens 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 af 5 = 120

I det ovenstående program skal vi, i modsætning til en for-løkke, øge værdien af ​​i inde i sløjfens krop.

Selvom begge programmer er teknisk korrekte, er det bedre at bruge til loop i dette tilfælde. Det skyldes, at antallet af iteration (op til num) er kendt.

Besøg denne side for at lære at finde et nummer af et nummer ved hjælp af rekursion.

Interessante artikler...