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 BigInteger
variablen, der er deklareret i java.math
biblioteket.
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 long
bruger vi BigInteger
variabel faktor.
Da det *
ikke kan bruges med BigInteger
, bruger vi i stedet multiply()
til produktet. Også num skal kastes til BigInteger
for 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.