JavaScript中的54321 4321 321 1使用递归

时间:2019-01-06 14:13:18

标签: javascript recursion numbers

我有一个关于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 :(得分:1)

尝试此解决方案,在此过程中,使用for循环附加数字来构建字符串,直到达到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);

答案 1 :(得分:0)

非常简单:)

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);