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:



Ş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:



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 loop ile her columndaki max digit'i bulup sonra print ettirebilirsin.
Basamak sayisi arttikca, yani rows arttikca bu deger de degisecek.


not: O ( N )
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…