Java-program for å finne et tallfaktor

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 BigIntegervariabel deklarert i java.mathbiblioteket.

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 BigIntegervariabel faktor.

Siden, *ikke kan brukes med BigInteger, bruker vi i stedet multiply()for produktet. Også num skal kastes til BigIntegerfor 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.

Interessante artikler...