Java programma, lai atrastu skaitļa faktori

Š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ā BigIntegerdeklarē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 longmēs izmantojam BigIntegermainīgo faktoriālu.

Tā kā *nevar izmantot kopā BigInteger, mēs tā vietā izmantojam multiply()produktam. Arī BigIntegerreizināš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.

Interesanti raksti...