Bir Sayının Faktörünü Bulmak İçin Java Programı

Bu programda, Java'da for ve while döngüsünü kullanarak bir sayının faktöriyelini bulmayı öğreneceksiniz.

Bu örneği anlamak için, aşağıdaki Java programlama konuları hakkında bilgi sahibi olmalısınız:

  • Döngü için Java
  • Java sırasında ve yap… Döngü sırasında

Pozitif bir n sayısının faktöriyeli şu şekilde verilir:

 n (n!) = 1 * 2 * 3 * 4 *… * n faktöriyeli 

Örnek 1: For döngüsünü kullanarak bir sayının çarpanını bulun

 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); ) )

Çıktı

 10 faktöriyeli = 3628800

Bu programda, 1 ile verilen numara num (10) arasındaki tüm sayılar arasında döngü yapmak için for döngüsünü kullandık ve num'a kadar her sayının çarpımı değişken bir faktörde saklanır.

Faktöriyelin büyük sonuçlarını depolamak için int yerine long kullandık. Ancak, daha büyük sayıların değerini saklayacak kadar büyük değil (100 diyelim).

Uzun bir değişkende saklanamayan sonuçlar için, kitaplıkta BigIntegerbildirilen değişkeni kullanırız java.math.

Örnek 2: BigInteger kullanarak bir sayının Faktöriyelini bulun

 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); ) )

Çıktı

 30 faktöriyeli = 265252859812191058636308480000000

Burada, yerine long, kullandığımız BigIntegerdeğişken çarpınımını.

Birlikte *kullanılamadığından BigInteger, bunun yerine multiply()ürün için kullanıyoruz . Ayrıca sayı, BigIntegerçarpma için dönüştürülmelidir.

Aynı şekilde, bu sorunu çözmek için bir while döngüsü de kullanabiliriz.

Örnek 3: while döngüsünü kullanarak bir sayının faktörünü bulun

 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); ) )

Çıktı

 5 = 120 faktöriyeli

Yukarıdaki programda, bir for döngüsünün aksine, döngünün gövdesi içindeki i değerini artırmamız gerekir.

Her iki program da teknik olarak doğru olsa da, bu durumda for döngüsü kullanmak daha iyidir. Bunun nedeni, yineleme sayısının (sayıya kadar) bilinmesidir.

Özyinelemeyi kullanarak bir sayının faktöriyelini bulmayı öğrenmek için bu sayfayı ziyaret edin.

Ilginç makaleler...