2015-05-15 4 views
-1

Мне нужна загрунтованная форма. Мне нужно выход как:Треугольник Паскаля с использованием вложенного цикла

1 
    0 1 
    0 1 0 
    1 0 1 0 

Я попытался напечатать левую сторону треугольника, но я не знаю, чтобы напечатать полный треугольник. Это мой код для печати с левой стороны треугольника:

for i in 1..5 
    for j in 1..i 
    if (i%2 == 0); 
     k = (j%2 == 0) ? 1:0; 
    else; 
     k = (j%2 ==0) ? 0:1; 
    end 
    print k," " 
    end 
    puts 
end 

я получаю выход, как это:

1 
0 1 
1 0 1 
0 1 0 1 
1 0 1 0 1 
+0

подсчитайте, насколько велика последняя строка, затем используйте это, чтобы рассчитать, сколько отступов требуется более ранним линиям. –

+0

Thats называется Triforce, Luke. Не все из нас могут это сделать – Avdept

+0

Я новичок Марк Я попробовал, но я не получил ... – prasanthrubyist

ответ

0

Просто добавьте print " "*(5-i), Как это:

for i in 1..5 
    print " "*(5-i) 
    for j in 1..i 
    if (i%2 == 0); 
    k = (j%2 == 0) ? 1:0; 
    else; 
    k = (j%2 ==0) ? 0:1; 
    end 
    print k," " 
end 
puts 
end 
+0

Да, он работает хорошо @ manfergo – prasanthrubyist

+0

Ваш добро пожаловать! Проверьте ответ, если он вам служит –

0

п -я строка будет иметь n цифр плюс n-1 пробелов - в случае пятой строки девять символов. Создайте каждую строку в виде строки и распечатайте ее, используя puts str.center(9)

Смежные вопросы