2015-10-09 1 views
-6

Я не прошу для решения моей проблемы, вместо этого, я хотел бы вам сказать, что мне нужно знать или учиться на для того, чтобы решить эту проблему:Печать треугольника в JavaScript

Я хочу чтобы написать функцию, которая, если я называю треугольник (5), она возвращает следующее:

1 
22 
333 
4444 
55555 

нужно ли мне знать рекурсию решить эту проблему? Какие понятия программирования или конкретные темы мне нужно знать?

Пожалуйста, не пишите решение здесь, поскольку я хотел бы выяснить это для себя!

Благодарим вас за помощь.

+0

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

+2

Начните с логики того, как вы будете печатать количество символов 'n', заданное некоторым' n'. Затем переходите к тому, как вы могли бы зацикливать этот процесс с каждым 'n-1' до' n === 1'. Для этого вам не нужна рекурсия. – Bwaxxlo

+1

не нужна рекурсия, только пара 'for' loops – WhiteHat

ответ

0

хорошо для простого решения. Он не будет отличаться от программы C или java. если это то, о чем вы просите.

Вы должны знать некоторую логику. Рекурсия не обязательно, конечно. Вы можете придумать итерационное решение.

Вы должны знать о циклах (для цикла) и там, где вы собираетесь использовать итеративное решение.

Вы должны иметь представление о базовом условии (условие выхода) Если вы собираетесь использовать рекурсивный.

0

По индукции.

Видимо, у вас есть тривиальная функция, которая рисует 1, первый уровень треугольника.

Предположим, что у вас уже есть функция, которая будет нарисовать такой треугольник, но она может отображать только до n треугольника уровня.

Теперь для уровня треугольника n+1, вы можете сначала нарисовать n уровне треугольник, и все же затем сделать еще один уровень, n+1 й уровень числа.

По индукции у вас есть функция, которая рисует треугольник произвольных уровней.

-6

Запустите этот код в консоли браузера. И да и попытайтесь понять поток и логику.

for(var i=1;i<=5;i++){ 
     var a=''; 
     for(var j=1;j<=i;j++){ 
     var a=a+' '+i; 

     } 

     console.log(a); 
    } 
+0

Привет, спасибо. не могли бы вы объяснить мне, как это работает? как я понимаю, он должен печатать: 1, затем 12 (строка типа), затем 123, 1234 и т. д. В основном я не понимаю, как работает «var a = a + i». Спасибо. – Jakub