54321 4321 321 1 в JavaScript с использованием рекурсии - PullRequest
0 голосов
/ 06 января 2019

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

function triangleNumber(num) {
       for(var i = num; i >= 1 ; i--){
           var str = ''
           for(var j = i; j >= 1; j--){
              str += j
           }
           console.log(str)
       }

    //DRIVER CODE
    console.log(triangleNumber(5));
    // 54321
    // 4321
    // 321
    // 21
    // 1

Ответы [ 2 ]

0 голосов
/ 06 января 2019

Довольно просто :)

function triangleNumber(num) {
    if(num<1) return;
    var str = '';
    for(var i = num; i >= 1 ; i--)  str += i;
    console.log(str);
    triangleNumber(num-1)
}

triangleNumber(5);
0 голосов
/ 06 января 2019

Попробуйте это решение, где вы строите строку, используя числа для добавления цикла, пока не достигнете 1. Затем вы вызываете функцию рекурсивно для следующего меньшего числа n - 1:

function triangleNumber(num) {
       if(num <= 0){ //Base case return if number reaches '0'
       	return;
       }
       var str = ''
       for(var i = num; i >= 1; i--){
         str += i; //Create number string by appending successive decreasing value
       }  
       console.log(str);
       triangleNumber(num - 1) //Recursively call the function for the next lower number     
}
triangleNumber(5);
...