2! 4! 6!
8! 10! 12!
14! 16! 18!
Üstteki gibi ekran çıktısı olacak şekilde faktoriyel hesabı yapan programı yazınız?
Öncelikle bunu yazarken dinamik hale getirebileğimizi de düşünerek ona göre komutları yazalım. Yani dizinin boyutlarını kendimiz belirleyelim. üstteki gibi 3×3 lük matris de olabilsin, 4×4 5×3 gibi matrisleride yazabilelim.
matris adında bir fonksiyon oluşturup boyutlarını parametre olarak isteyelim. Aşağıdaki komut satırındaki açıklamaları okuyarak algoritmayı anlayabilirsiniz. Anlamadığınız birşey olursa yorum yazarak sorunuzu iletebilirsiniz.
private static void matris(int x, int y) { // TODO Auto-generated method stub int dizi[][] = new int [x][y]; // istenilen boyutta dizi yaratıyoruz int baslangic = 2; // soruda istenildiği gibi 2 faktoriyel hesabıyla başlıyoruz int faktoriyel = 1; // faktoriyel hesabının sonucunun atıldığı değişken int i,j, fak; // sürekli nesne oluşturmasın diye değişkenlerimizi burada tanımlıyoruz. for (i = 0; i < x; i++) { for (j = 0; j < y; j++) { for (fak = 2; fak <= baslangic; fak++) { //faktoriyel hesabı faktoriyel = faktoriyel * fak; } dizi[i][j] = faktoriyel; // faktoriyel sonucunu diziye atıyoruz faktoriyel = 1; // faktoriyel hesabını baştan yapacağımız için 1 e eşitliyoruz baslangic = baslangic + 2; // faktoriyel hesabını yapacağımız sayıyı 2 arttırarak isteneni elde ediyoruz } } for (i = 0; i < y; i++) { System.out.println(Arrays.toString(dizi[i])); // dizimizi ekrana yazdırıyoruz. İstersek iki for ile de yapabiliriz. Bu kısa yolu. } } }
Daha sonra main fonksiyonumuzu yazıyoruz.
public static void main(String[] args) { matris(3, 3); // dinamik bir şekilde çıkardım. System.out.println("----------------"); matris(4, 4); }
Ve aşağıdaki sonucu konsolumuzdan alıyoruz..
Gördüğünüz gibi – değerler de var. bunun sebebi int’ın boyutunu aşacak değerler olmasıdır. Ama istediğimizi elde ettiğimizi görebiliriz. Okuduğunuz için teşekkürler..