I dette programmet lærer du å finne et faktoral for et nummer som bruker for og mens loop i Java.
For å forstå dette eksemplet, bør du ha kunnskap om følgende Java-programmeringsemner:
- Java for Loop
- Java mens og gjør… mens Loop
Faktoren til et positivt tall n er gitt av:
fabrikk av n (n!) = 1 * 2 * 3 * 4 * … * n
Eksempel 1: Finn faktor for et tall ved hjelp 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); ) )
Produksjon
Faktor av 10 = 3628800
I dette programmet har vi brukt for loop til loop gjennom alle tall mellom 1 og det gitte tallet num (10), og produktet av hvert nummer til num er lagret i en variabel faktor.
Vi har brukt lenge i stedet for int for å lagre store resultater av faktoria. Imidlertid er det fortsatt ikke stort nok til å lagre verdien av større tall (si 100).
For resultater som ikke kan lagres i en lang variabel, bruker vi BigInteger
variabel deklarert i java.math
biblioteket.
Eksempel 2: Finn faktor for et tall ved hjelp av 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); ) )
Produksjon
Faktor av 30 = 265252859812191058636308480000000
Her, i stedet for long
, bruker vi BigInteger
variabel faktor.
Siden, *
ikke kan brukes med BigInteger
, bruker vi i stedet multiply()
for produktet. Også num skal kastes til BigInteger
for multiplikasjon.
På samme måte kan vi også bruke en stund-løkke for å løse dette problemet.
Eksempel 3: Finn faktor for et tall ved hjelp av 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); ) )
Produksjon
Faktor på 5 = 120
I det ovennevnte programmet må vi, i motsetning til en for-løkke, øke verdien av i inne i kroppen.
Selv om begge programmene er teknisk korrekte, er det bedre å bruke for loop i dette tilfellet. Det er fordi antall iterasjon (opp til antall) er kjent.
Besøk denne siden for å lære å finne et faktura av et nummer ved hjelp av rekursjon.