I was trying to write a code that would display pascals triangle. Instead of displaying the result as :
my result is displayed as
1
1 1
1 2 1
1 3 3 1
Please help me figure out how to modify it to be able to get the actual triangle. I cant use arrays and pointers since those aren't covered in my class yet. Here's my code:
#include "stdafx.h"
#include <iostream>
using namespace std;
void PascalsTriangle(int);
int main()
{
int n;
cout << "Enter the number of rows you would like to print for Pascal's Triangle: ";
cin >> n;
PascalsTriangle(n);
return 0;
}
void PascalsTriangle (int n){
int i,j,x;
for(i=0;i<n;i++)
{
x=1;
for(j=0;j<=i;j++)
{
cout << x << " ";
x = x * (i - j) / (j + 1);
}
cout << endl;
}
}
Do you expect this result?
1111
123
13
1
You need to add endl or constant string equivalent to "\r\n" to the end of the output string, or use commas in output, then, for example:
"1111,123,13,1"
"1,11,121,1331"
Try this :
EDITED:
Here is the updated version. Works for any
n
. I've added a function to return the number of digits in a number since that computation is needed each iteration of the inner loop.OUTPUTS:
UPDATE for a more tighter triangle:
OUTPUT
If you want it to look like a 'triangle', that is, a symmetric looking isosceles triangle, try this code for your
PascalTriangle
function. The only problem with this is that when you get larger digits, it will break some of the symmetry but up to 5 rows it'll work fine.OUTPUT
As opposed to: