Girilen Sayının Faktöriyelini Hesaplama

Girilen Sayının Faktöriyelini Hesaplama

Merhaba arkadaşlar bu yazımızda sizlerle birlikte JAVA programlama dili kullanarak kullanıcıdan alınan bir sayının faktöriyelini hesaplayıp kullanıcıya hesaplamanın sonucunu göstereceğiz. Programımızı yazmaya başlamadan önce faktöriyelin ne olduğu hakkında kısaca bilgi vermek istiyorum.

Faktöriyel Nedir?

Matematiksel olarak sağına ! (ünlem) işareti koyulmuş sayıya verilen isimdir. Pozitif sayılar için geçerlidir. Detaylı bilgi için wikipedia sitesini ziyaret edebilirsiniz.

Peki bu ! (ünlem) işareti sayımıza nasıl bir anlam yükler ?

Sayımızın sağında bulunan ünlem işareti sayımızın kendisinden başlayıp 1 sayısına kadar olan tüm pozitif tam sayıların çarpımını ifade etmektedir. Örneğin

8! = 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 = 40320

5! = 5 * 4 * 3 * 2 * 1 = 120

3! = 3 * 2 *1 = 6

1! = 1

Fakat önemli iki kural vardır.

  • 0 sayısının faktöriyeli bire eşittir.
  • Negatif sayıların faktöriyeli tanımsızdır.

0! = 1

-5! = Tanımsız

Genel olarak faktöriyel hesaplaması bu şekilde yapılmaktadır. Birazdan yapacağımız örnekte en önemli kısımlardan biriside faktöriyel kurallarıdır. Bu kurallara uygun şartlar yazmamamız durumunda yanlış sonuçlar elde edebileceğimizi unutmayım.

Artık faktöriyel hesaplamayı ve faktöriyel hesaplamanın temel kurallarınıda öğrendiğimize göre faktöriyel hesaplaması yapacağımız örnek projemize geçebiliriz.


Girilen Sayının Faktoriyelini Hesaplama Örneği

Örneğimiz temel olarak kullanıcıdan bir sayı girmesini isteyecektir. Girilen bu sayının temel faktöriyel kurallarına uygun olup olmadığını test ettikten sonra şartlara uygun bir sonuç üretip kullanıcıya bu sonucu gösterecektir.

import java.util.Scanner;
public class girilenSayininFaktoriyeli {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);

	}
}

İlk olarak kullanıcıdan bir veri girişi yapmasını isteyeceğiz. Bunun için bir önceki makalemizde SCANNER kullanımından bahsetmiştik eğer eksiğiniz olduğunu düşünüyorsanız bir önceki makalemize bakabilirsiniz. İlk olarak scanner sınıfımızı dahil edelim ve bu sınıftan bir adet nesne oluşturalım.

import java.util.Scanner;
public class girilenSayininFaktoriyeli {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);

	}
}

Evet artık bir adet scan adında scanner nesnemiz mevcut. Kullanıcıdan bir adet tam sayı almamız gerektiği için integer tipinde bir değişken oluşturalım ve kullanıcıdan bir değer girmesini gerektiğini belirtelim. Ardından kullanıcının girdiği değeri oluşturduğumuz integer değişkene aktaralım.

import java.util.Scanner;
public class girilenSayininFaktoriyeli {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int sayi = 0;
		System.out.println("Faktöriyeli hesaplanacak sayi: ");
		sayi = scan.nextInt();
	}
}

Evet artık elimizde sayı adında bir değişken var ve bu değişkenin içerisinde kullanıcıdan aldığımız değeri tutuyoruz. Artık faktöriyel hesaplayabiliriz. Bundan önce önemli 2 adet kuralımız vardı onlar için birer şart yazalım.

İlk şartımız girilen sayı 0 ise faktöriyeli daima birdir.

    if(sayi == 0)
    {
        System.out.println("1");
    }

ardından diğer şartımız olan negatif sayıların faktöriyeli tanımdızdır. Bunun içinde if şartımızın devamında else if şartı eklebiliriz.

Else if: Bir sorgulama işleminde iki veya daha fazla karşılaştırma yapılması gerekiyorsa kullanılır.

if(sayi == 0)
{
	System.out.println("Sonuç: 1");
} else if(sayi < 0)
{
	System.out.println("Sonuç: TANIMSIZ");
}

artık genel olarak 2 kuralımızı da kontrol edebiliyoruz. Üstteki iki kuralımızın geçersiz olması durumunda sayımızın pozitif bir sayı olduğunu kabul edebilir ve sayımızın faktöriyelini hesaplayabiliriz. Bunun için else if sorgumuzun devamına else şartı ekleyelim ve içerisinde sayımızın faktöriyelini hesaplayalım.

İlk olarak sonucun tutulduğu bir integer değişken oluşturalım. Ardından girilen sayıdan 1 sayısına kadar tüm elemanları çarpmamız gerekiyor. Bunun için biz for döngüsünü kullanabiliriz. Ardından hesapladığımız sonucu çıktı olarak ekrana bastırabiliriz.

if(sayi == 0)
		{
			System.out.println("Sonuç: 1");
		} else if(sayi < 0)
		{
			System.out.println("Sonuç: TANIMSIZ");
		} else {
			int sonuc = 1;
			for (int i = sayi; i > 0; i--) {
				sonuc = i * sonuc; 
			}
			System.out.println("Sonuç: "+sonuc);
		}

Artık programımız faktöriyel kurallarını biliyor ve kurallara uygun sonuçlar üretebiliyor.


Örneğimizin Tüm Kodları

Örneğimizde bulunan kodların tamamının bir araya getirilmiş halidir.

import java.util.Scanner;
public class girilenSayininFaktoriyeli {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int sayi = 0;
		System.out.println("Faktöriyeli hesaplanacak sayi: ");
		sayi = scan.nextInt();
		if(sayi == 0)
		{
			System.out.println("Sonuç: 1");
		} else if(sayi < 0)
		{
			System.out.println("Sonuç: TANIMSIZ");
		} else {
			int sonuc = 1;
			for (int i = sayi; i > 0; i--) {
				sonuc = i * sonuc; 
			}
			System.out.println("Sonuç: "+sonuc);
		}
	}
}

Girilen sayının faktöriyelini hesaplama örneğimi incelediğiniz için teşekkür ederim. Sağlıklı günler dilerim.

Bloğumu halen incelemediniz mi ? https://enginyenice.com/

Hakkımda: https://enginyenice.com/hakkimda/

İletişim: https://enginyenice.com/iletişim/

Yayımlayan

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir