我有一个关于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
答案 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);