### A good answer might be:

Sure. Either or both methods could be iterative or recursive.

# Dynamic Pyramids

Here, for reference, are the two (recursive) methods:

```public int Triangle( int N )
{
if ( N == 1 )
return 1;
else
return N + Triangle( N-1 );
}

public int Pyramid( int N )
{
if ( N == 1 )
return 1;
else
return Pyramid ( N-1 )
+ Triangle ( N );
}
```

The diagram (at right) shows the activation chain when the `main()` method has called `Pyramid(3)`. This results in three activations of the `Pyramid()` method. Click on the diagram to see these activations.

When the base case `Pyramid(1)` is reached, it immediately returns a value of 1. Now the second activation, `Pyramid(2)`, calls `Triangle(2)` which results in activations of `Triangle()` added to the chain.

After two activations, `Triangle(2)`, returns a 3 to its caller. `Pyramid(2)` now has all the values it needs and returns a 4 to its caller.

`Pyramid(3)` now calls `Triangle(3)` which eventually returns a 6. The value 10 is returned to `main()`.

### QUESTION 7:

It is equally valid to write `Pyramid()` with the methods in the last line reversed:

```public int Pyramid( int N )
{
if ( N == 1 )
return 1;
else
return Triangle ( N ) + Pyramid ( N-1 ) ;  // Reversed Order
}
```

Will the sequence of activations in the activation chain be the same for this method?