### LANGUAGE: C++

### CHALLENGE:

Assume the availability of a function named printStars that can be passed a non-negative integer n and print a line of asterisks. Write a function named printTriangle that receives a non-negative integer n and prints a triangle of asterisks as follows: first a line of 1 asterisk, followed by a line of 2 asterisks, and then a line of 3 asterisks, and so on and finally a line of n asterisks. For example, if the function received 5 it would print: * * * * * * * * * * * * * * * The function must not use a loop of any kind (for, while, do-while) to accomplish its job. The function should invoke printStars to accomplish the task of printing a single line.

### SOLUTION:

void printTriangle(int n){ if(n <= 0) return; printStars(n); cout<<endl; printTriangle(n-1); }

fixed:

void printTriangle(int n)

{

if(n <= 0) return;

printStars(n);cout<<endl;

printTriangle(n-1);

}

fixed:

void printTriangle(int n)

{

if(n <= 0) return;

printStars(n);cout<<endl;

printTriangle(n-1);

}

EDIT: Sorry, this was for a variation of the problem posted here. Your code is correct

WRONG! You’re printing the stars in reverse order (e.x. 5 to 1). Pay attention! It wants 1 to 5 instead.

void printTriangle(int n){

if(n==0) return;

printTriangle(n-1);

printStars(n);

}

This works ….

Real answer

void printTriangle(int n){

if(n==0) return;

printTriangle(n-1);

printStars(n);

cout << endl;

}

this is the only one that worked!