Reputation: 169
I have this function which prints the numbers from 1
to n
in a triangle like way.
function printNumbers(n) {
var result = "";
var counter = 1;
while (counter <= n) {
result += counter;
console.log(result);
counter = counter + 1;
}
}
console.log(printNumbers(4));
the result looks like this:
1
12
123
1234
I need pointer on how to do this using recursion, because I am new to programing an I don't have a clue on how to do it.
Upvotes: 0
Views: 6443
Reputation: 11
function countDown(number) {
const newNumber = number - 1;
if (newNumber >= 0) {
countDown(newNumber);
console.log(number);
}
}
countDown(10);
Upvotes: 0
Reputation: 982
here is the Javascript version:
function printNumbers(n){
if(n >= 10) {
printNumbers(Math.floor(n / 10));
}
console.log(n);
}
printNumbers(1234);
// 1
// 12
// 123
// 1234
maybe sb is interested in the following version:
function printNumbers(n){
if(n >= 10) {
printNumbers(Math.floor(n / 10));
}
console.log(n % 10);
}
printNumbers(1234);
// 1
// 2
// 3
// 4
Upvotes: 0
Reputation: 117
function oneToN(n) {
if (n == 0) {
console.log(n);
return n;
} else {
oneToN(--n);
console.log(n + 1);
}
}
oneToN(5);
Upvotes: 0
Reputation: 4882
You can try something like this:
function Recursion(n) {
if (n <= 9) // to prevent infinite loop
{
var s = '';
for (var i = 1; i < n; i++)
{
s += i; // concatenate until n
}
console.log(s); // print the generated number
return Recursion(n + 1); // increase n and recall Recursion
}
};
Recursion(1);
http://jsbin.com/eDOqOCi/1/edit?html,js,output
Upvotes: 0
Reputation: 11440
Function doCounter(counter, I, n)
{
If(I>n) {
Console.log(counter);
doCount(counter+I, I++, n);
}
}
doCounter(1,0,4);
Upvotes: 0
Reputation: 15621
function printNumbers(n, counter, result){
counter = counter || 0;
result = result || "";
if (counter >= n) return result;
return printNumbers(n, ++counter, result+""+counter);
}
alert(printNumbers(10));
Upvotes: 0
Reputation: 141827
The basic idea is just to use the last result to build the new result:
function printNumbers(n){
var result;
if(n <= 1)
result = '1';
else
result = printNumbers(n-1) + n;
console.log(result);
return result;
}
You can assign to a variable like that nicely using the ternary operator too:
function printNumbers(n){
var result = n <= 1 ? '1' : printNumbers(n-1) + n;
console.log(result);
return result;
}
Upvotes: 3