IMG-LOGO

JAVA Faktöriyel


Bir sayının faktöriyelini bulmak için Java programı, sayı negatifse, bir hata mesajı yazdırılır. Faktöriyeli özyineleme(recursion) kullanarak da bulabilirsiniz. İlk program tam sayı(integer) veri türünü kullanır, böylece sadece küçük sayıların faktöriyelini hesaplayabilir.

JAVA bir tam sayının faktöriyeli

import java.util.Scanner;

class Factorial
{
  public static void main(String args[])
  {
    int n, c, f = 1;

    System.out.println("Faktöriyeli hesaplanacak sayıyı girin");
    Scanner in = new Scanner(System.in);

    n = in.nextInt();

    if (n < 0)
      System.out.println("Sayı pozitif olmalıdır.");
    else
    {
      for (c = 1; c <= n; c++)
        f = f*c;

      System.out.println("Şu sayının faktöriyeli: "+n+" is = "+f);
    }
  }
}

JAVA Büyük sayıların faktöriyelini hesaplama "BigInteger"

Yukarıdaki program örnek olarak 20'ye kadar olan sayılar için doğru sonucu verir. Çünkü 20! büyük bir sayıdır ve 4 baytlık tamsayı veri türünde saklanamaz. Yüzün faktöriyelini hesaplamak için java.math paketinin BigInteger sınıfını kullanıyoruz.

import java.util.Scanner;
import java.math.BigInteger;

class Factorial
{
  public static void main(String args[])
  {
    int n, c;

    BigInteger i = new BigInteger("1");
    BigInteger f = new BigInteger("1");

    Scanner input = new Scanner(System.in);

    System.out.println("Bir sayı girin");
    n = input.nextInt();

    for (c = 1; c <= n; c++) {
      f = f.multiply(i);
      i = i.add(BigInteger.ONE);
    }

    System.out.println(n + "! = " + f);
  }
}


Programı 100'ün faktöriyelini hesaplamak için yürüttük.
Bir sayı girin
100
100! =
9332621544394415268169923885626670049071596826438
1621468592963895217599993229915608941463976156518
2862536979208272237582511852109168640000000000000
00000000000