Java'da sayı piramidi nasıl yazdırılır?

A.Hakan Cansız

Decapat
Katılım
21 Temmuz 2020
Mesajlar
9
Selamlar.
Java üzerinde sayı piramidi kodlamaya çalışıyorum.
Bu şekilde görünmesi lazım:

MJFrxodl.jpg


Şu ana kadar yazdığım kod bu:


Java:
System.out.print("Number of rows--> ");
Scanner input = new Scanner(System.in);
int rows = input.nextInt();
int temp = rows, carp = 3;

for (int i = 1; i < rows + 1; i++) {
    for (int j = rows; j > i; j--) {
        System.out.printf("%" + (j + 1) + "s", " ");
    }
    System.out.printf("%" + i + "d", 1);
    if (i == 2){
        System.out.print(" ");
    }

    if (i > 1) {
        for (int j = 1; j < i; j++) {
            System.out.printf("%" + (i - 1) + "d", (int) Math.pow(carp, j));
        }
        if (i == 2) {
            System.out.print(" ");
        }
        for (int j = i - 1; j > 1; j--) {
            System.out.printf("%" + (i - 1) + "d", (int) Math.pow(carp, j) / 3);
        }
        System.out.printf("%" + (i - 1) + "d", 1);
    }

    temp--;
    System.out.println("");
}

Benim kodun çıktısı da bu şekilde:

bVcNubbl.jpg


Sayıların hizalanması gerekiyor. Nasıl yaparım?
Şimdiden teşekkürler.
 
Son düzenleyen: Moderatör:
Her column, kendisindeki max digit kadar yer tutacak.
Once rows'lari hesaplayip, sonra da tek bir O(n) loop ile her columndaki max digit'i bulup sonra print ettirebilirsin.
Basamak sayisi arttikca, yani rows arttikca bu deger de degisecek.


not: O ( N )
 

Technopat Haberler

Yeni konular

Geri
Yukarı