Šajā programmā jūs iemācīsities atrast skaitļa faktorialu, izmantojot Java cilni un while.
Lai saprastu šo piemēru, jums jāpārzina šādas Java programmēšanas tēmas:
- Java lokam
- Java kamēr un dari … kamēr Loop
Pozitīvā skaitļa n koeficientu izsaka:
n (n!) faktoriāls = 1 * 2 * 3 * 4 *… * n
1. piemērs: Atrodiet skaitļa koeficientu, izmantojot cilpu
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); ) )
Rezultāts
Faktoriskais koeficients 10 = 3628800
Šajā programmā mēs esam izmantojuši cilpu, lai apietu visus skaitļus no 1 līdz dotajam skaitlim num (10), un katra skaitļa līdz skaitlim reizinājums tiek saglabāts mainīgā faktoriālā.
Mēs esam izmantojuši ilgu laiku, nevis int, lai saglabātu lielus faktoriālo rezultātus. Tomēr tas joprojām nav pietiekami liels, lai saglabātu lielāku skaitļu (teiksim 100) vērtību.
Rezultātiem, kurus nevar saglabāt garā mainīgajā, mēs izmantojam bibliotēkā BigInteger
deklarēto mainīgo java.math
.
2. piemērs: Atrodiet skaitļa koeficientu, izmantojot 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); ) )
Rezultāts
Faktoriskais skaitlis 30 = 265252859812191058636308480000000
Šeit long
mēs izmantojam BigInteger
mainīgo faktoriālu.
Tā kā *
nevar izmantot kopā BigInteger
, mēs tā vietā izmantojam multiply()
produktam. Arī BigInteger
reizināšanai ir jānodod num .
Tāpat šīs problēmas risināšanai mēs varam izmantot arī kādu laiku.
3. piemērs: Atrodiet skaitļa faktori, izmantojot while ciklu
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); ) )
Rezultāts
Faktoriskais koeficients 5 = 120
Iepriekš minētajā programmā, atšķirībā no for for loop, mums ir jāpalielina i vērtība cilpas korpusā.
Lai gan abas programmas ir tehniski pareizas, šajā gadījumā labāk izmantot cilpu. Tas ir tāpēc, ka ir zināms atkārtojumu skaits (līdz skaitļiem).
Apmeklējiet šo lapu, lai iemācītos atrast skaitļa faktoriālu, izmantojot rekursiju.