Bu yazıda algoritma öğrenirken güzel temel oluşturabilecek bir örnek olan kullanıcıdan alınan sayının faktöriyelini bulan akış diyagramını ve açıklamalarıyla beraber java kodunu göreceksiniz.

Öncelikle faktöriyel nedir öncelikle onu tanımlayalım

Faktöriyel Nedir?

Faktöriyel, bir sayının kendisinden küçük veya eşit olan tüm pozitif tam sayıların çarpımıdır. Matematikte “!” işaretiyle gösterilir.

Örnekler:

  • 5! (5 faktöriyel) = 5 × 4 × 3 × 2 × 1 = 120
  • 3! (3 faktöriyel) = 3 × 2 × 1 = 6
  • 1! (1 faktöriyel) = 1
  • 0! (0 faktöriyel) ise özel bir durumdur ve değeri 1 olarak kabul edilir.

Faktöriyel özellikle kombinasyon, permütasyon ve olasılık hesaplamalarında sıkça kullanılır. Örneğin, farklı sıralamalar oluştururken veya büyük sayılarla işlem yaparken faktöriyel devreye girer.

İSTENEN

Kullanıcıdan bir sayı alan ve bu sayının faktöriyelini ekrana çıktı olarak veren java kodu nedir?

ÇÖZÜM

import java.util.Scanner;

public class FactorialCalculator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Bir sayı girin: ");
        int number = scanner.nextInt();
        
        long factorial = 1;
        
        for (int i = 1; i <= number; i++) {
            factorial *= i;
        }
        
        System.out.println(number + "! = " + factorial);
        scanner.close();
    }
}

Şimdi satır satır açıklayalım.

import java.util.Scanner;
  • Kullanıcıdan giriş almak için Scanner sınıfını kullanıyoruz.
  • Scanner, Java’nın java.util paketinde bulunduğu için önce bunu içe aktarmamız gerekiyor.
public class FactorialCalculator {
    public static void main(String[] args) {
  • public class FactorialCalculator → Programın ana sınıfı.
  • public static void main(String[] args) → Java programlarının başlama noktası olan main metodu
Scanner scanner = new Scanner(System.in);
System.out.print("Bir sayı girin: ");
int number = scanner.nextInt();
  • Scanner scanner = new Scanner(System.in);
  • → Kullanıcıdan veri alabilmek için Scanner nesnesi oluşturduk.System.out.print("Bir sayı girin: ");
  • → Kullanıcıya giriş yapmasını isteyen bir mesaj gösteriyoruz.int number = scanner.nextInt();
  • → Kullanıcının girdiği sayıyı number değişkenine atıyoruz.
long factorial = 1;
  • long veri tipi kullanıyoruz çünkü faktöriyel çok büyük sayılara ulaşabilir.
  • Başlangıç değeri 1 olarak ayarlanır çünkü faktöriyel hesaplamada çarpma işlemi kullanılır ve çarpma işleminde etkisiz eleman 1’dir.
for (int i = 1; i <= number; i++) {
    factorial *= i;
}
  • Döngünün amacı: 1’den başlayarak girilen sayıya kadar tüm sayıları çarpmak.for (int i = 1; i <= number; i++)
  • i değişkeni 1’den başlar, girilen sayıya kadar gider ve her seferinde 1 artar.factorial *= i;
  • factorial = factorial * i; anlamına gelir.
  • i = 1factorial = 1 * 1 = 1
  • i = 2factorial = 1 * 2 = 2
  • i = 3factorial = 2 * 3 = 6
  • i = 4factorial = 6 * 4 = 24
  • i = 5factorial = 24 * 5 = 120
  • … böyle devam eder.

System.out.println(number + "! = " + factorial);
  • Girilen sayıyı ve hesaplanan faktöriyel değerini ekrana yazdırıyoruz.
  • Eğer kullanıcı 5 girmişse, çıktı şu olur:
5! = 120
scanner.close();
  • Bellek yönetimi açısından gereklidir.
  • Scanner kullanımı bittiğinde kapatmazsan gereksiz bellek tüketimi olur.

One response

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir