V tem programu se boste naučili najti faktorje številke z uporabo zanke for in while v Javi.
Če želite razumeti ta primer, morate poznati naslednje programske teme Java:
- Java za zanko
- Java while in do … while Loop
Faktorial pozitivnega števila n je podan z:
faktorijel od n (n!) = 1 * 2 * 3 * 4 * … * n
Primer 1: Poiščite faktorja števila s pomočjo zanke for
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); ) )
Izhod
Faktorijev 10 = 3628800
V tem programu smo zanko for uporabili za zanko skozi vsa števila med 1 in dano številko num (10), zmnožek vsake številke, dokler ni num, je shranjen v spremenljivki faktorije.
Dolgo smo namesto int uporabili za shranjevanje velikih rezultatov faktorja. Vendar še vedno ni dovolj velik, da bi shranil vrednost večjih števil (recimo 100).
Za rezultate, ki jih ni mogoče shraniti v dolgi spremenljivki, uporabimo BigInteger
spremenljivko, navedeno v java.math
knjižnici.
Primer 2: Poiščite Factoriala številke z uporabo 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); ) )
Izhod
Faktorijev od 30 = 265252859812191058636308480000000
Tu namesto long
uporabljamo BigInteger
spremenljivko faktorijel.
Ker *
tega ni mogoče uporabiti z BigInteger
, namesto tega uporabljamo multiply()
za izdelek. BigInteger
Za množenje je treba vnesti tudi num .
Prav tako lahko za rešitev te težave uporabimo tudi zanko while.
Primer 3: Poiščite Factoriala števila s pomočjo zanke while
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); ) )
Izhod
Faktorijev od 5 = 120
V zgornjem programu moramo za razliko od zanke for povečati vrednost i znotraj telesa zanke.
Čeprav sta oba programa tehnično pravilna, je v tem primeru bolje uporabiti for. To je zato, ker je znano število ponovitev (do števila).
Obiščite to stran in se naučite najti faktorije števila z uporabo rekurzije.