943,542 Members | Top Members by Rank

Ad:
  • C++ Discussion Thread
  • Marked Solved
  • Views: 1286
  • C++ RSS
Dec 3rd, 2008
0

How to Sum a Pascal Triangle

Expand Post »
Hi there. I had to make a code to print out a Pascal Triangle. But I'm not getting it to display properly.

For example, if the user types in 4, then it will print:
1
1
1 2
1 3 3

But it should print
1
1 1
1 2 1
1 3 3 1


And the last thing I'm trying to figure out is how to make it show a sum of the numbers.
So it should add:
.. 1
.. 1 + 1
.. 1 + 2 + 1
+ 1 + 3 + 3 + 1
.. 15 <-----------and display this as the sum.

Any help is appreciated. Thank you!

#include <stdlib.h>
#include <stdio.h>
#include <fstream>
#include <iostream>
#include <ctype.h>  // I know some of these may be unnecessary 
#include <string> // but our teacher wants us to include
#include <iomanip> // these in all our code.
#include <math.h> 
using namespace std;
int sum, i, size;
void inputSize();
void sumNumbers();
 
void main(int size) 
{
	int sum=0;
	cout<<"Pascal Triangle:\n";
	inputSize();
}

void inputSize()
{
	cout<< "Enter the amount of rows (between 1 and 9) you would like in the triangle."<<endl;
	cin >>size;
	cout<<"\n";	

	if (size > 0 && size <10)
	{	
		int *rowA = new int[1];
		rowA[0] = 1;
		cout <<setw(6)<<rowA[0] <<endl;
 
		for (int x = 1; x < size; x++) 
		{
			int *rowB = new int[x+1];
			rowB[0] = rowA[0];
			for (int y = 1; y < x; y++)
				rowB[y] = rowA[y-1] + rowA[y];
				rowB[x] = rowA[x-1];
														 
			delete [] rowA;
			rowA = rowB;
 
			for (int y = 0; y < x; y++)
			cout <<setw(6)<< rowB[y];
			cout <<"\n";
		}
		delete [] rowA;

		sumNumbers();
	}

	else
	{ cout<< "Number is not between 1-9.\n"<<endl; }
}
		
void sumNumbers()                           
{
	for (int x=0; x<size; x++)
	{
		for (int y=0; y<size; y++)
		{
			sum +=y;  // This is totally wrong, 
                }                         // I can't figure out how to 
		cout<<sum<<"\n"<<endl; //make a sum of the numbers
	}
}


Similar Threads
Reputation Points: 10
Solved Threads: 0
Newbie Poster
cherryteresa is offline Offline
17 posts
since Dec 2007
Dec 3rd, 2008
2

Re: How to Sum a Pascal Triangle

You can figure out your first problem just by looking at your results. You're not printing the last 1 of each row. Why? Well, you're stopping too early in your loop that prints out the row's numbers.

For your second problem, if you temporarily added a few cout statements that showed the numbers you're adding, you'd see your problem very quickly.

You might not have to go through this effort -- I'm sure some shmuck will come along to tell you exactly what's wrong with your code.
Team Colleague
Reputation Points: 1133
Solved Threads: 171
Super Senior Demiposter
Rashakil Fol is offline Offline
2,478 posts
since Jun 2005
Dec 3rd, 2008
0

Re: How to Sum a Pascal Triangle

Thanks. I actually just now figured out how to make the triangle print properly. I kept trying to add +1 in different places before. And then I realized, woops - I should have made it <= (less than or equal to) instead of < (less than)
for (int y = 0; y <= x; y++)

But I'm still having issues with the sum.
Last edited by cherryteresa; Dec 3rd, 2008 at 4:33 pm.
Reputation Points: 10
Solved Threads: 0
Newbie Poster
cherryteresa is offline Offline
17 posts
since Dec 2007
Dec 3rd, 2008
1

Re: How to Sum a Pascal Triangle

You might observe that each row in the triangle is equal to 2 raised to n. Where n starts at zero.
Your example : 2^0+2^1+2^2+2^3=15
I wonder why those binaries always pop up when we talk computer and why Pascal is also a computerlanguage.?.?.?
Reputation Points: 2023
Solved Threads: 644
Senior Poster
ddanbe is offline Offline
3,735 posts
since Oct 2008
Dec 4th, 2008
0

Re: How to Sum a Pascal Triangle

You're right, I was thinking about how all this math ties together. It's crazy to think about sometimes!

Okay, so thank you for pointing out the power thing. I think this is where I got stuck before. I'm trying to figure out how to raise something to the power. We didn't go over this in class and all the things I could find online showed it in printf form and not cout. And so I'm having trouble figuring out how to do it. I think basically what I need to do is:

for (int x=0; x<size; x++)
	{
		sum += pow (2, x); - // trying to figure 
                                               //  out how to 
                                               //translate this to code.
                                              // 2 to the x power

		for (int y=0; y<size; y++)
		{

		}
		cout<<sum<<"\n"<<endl;
	}
}

I'm going to keep searching.
Last edited by cherryteresa; Dec 4th, 2008 at 1:48 pm.
Reputation Points: 10
Solved Threads: 0
Newbie Poster
cherryteresa is offline Offline
17 posts
since Dec 2007
Dec 4th, 2008
1

Re: How to Sum a Pascal Triangle

You're right, I was thinking about how all this math ties together. It's crazy to think about sometimes!

Okay, so thank you for pointing out the power thing. I think this is where I got stuck before. I'm trying to figure out how to raise something to the power. We didn't go over this in class and all the things I could find online showed it in printf form and not cout. And so I'm having trouble figuring out how to do it. I think basically what I need to do is:

for (int x=0; x<size; x++)
	{
		sum += pow (2, x); - // trying to figure 
                                               //  out how to 
                                               //translate this to code.
                                              // 2 to the x power

		for (int y=0; y<size; y++)
		{

		}
		cout<<sum<<"\n"<<endl;
	}
}

I'm going to keep searching.
pow (int, int) doesn't exist.

http://www.cplusplus.com/reference/c...cmath/pow.html

Make one or both a double:
C++ Syntax (Toggle Plain Text)
  1. pow (2.0, x); // or pow (2.0, (double) x);

pow is from cmath, which you have as math.h. You may want to change those #include statements to include C++ libraries (cstdlib, cctype, cmath, cstdio) rather than the .h files. I'm not sure whether the compiler cares or not (probably not), but at least it makes clear that you are using C++ to the reader.
Featured Poster
Reputation Points: 2614
Solved Threads: 687
Posting Expert
VernonDozier is offline Offline
5,371 posts
since Jan 2008
Dec 4th, 2008
0

Re: How to Sum a Pascal Triangle

Quote originally posted by VernonDozier ...
pow (int, int) doesn't exist.
Quite right, but it might that some C++ compilers implicitly convert an int to a double.
Reputation Points: 2023
Solved Threads: 644
Senior Poster
ddanbe is offline Offline
3,735 posts
since Oct 2008
Dec 4th, 2008
0

Re: How to Sum a Pascal Triangle

Oh, thank you guys all so much. I got it to work using the "pow (2.0, x)" method (using Visual C++ Express, just fyi).

#include <stdlib.h>
#include <stdio.h>
#include <fstream>
#include <iostream>
#include <ctype.h> 
#include <string>
#include <iomanip>
#include <math.h>
using namespace std;
int sum, i, size;
void inputSize();
void sumNumbers();
 
void main(int size) 
{
	int sum=0;
	cout<<"Pascal Triangle:\n";
	inputSize();
}

void inputSize()
{
	cout<< "Enter the amount of rows (between 1 and 9) you would like in the triangle."<<endl;
	cin >>size;
	cout<<"\n";	

	if (size > 0 && size <10)
	{	
		int *rowA = new int[1];
		rowA[0] = 1;
		cout <<setw(6)<<rowA[0] <<endl;
 
		for (int x = 1; x < size; x++) 
		{
			int *rowB = new int[x+1];
			rowB[0] = rowA[0];
			for (int y = 1; y < x; y++)
				rowB[y] = rowA[y-1] + rowA[y];
				rowB[x] = rowA[x-1];
														 
			delete [] rowA;
			rowA = rowB;
 
			for (int y = 0; y <= x; y++)
			cout <<setw(6)<< rowB[y];
			cout <<"\n";
		}
		delete [] rowA;

		sumNumbers();
	}

	else
	{ cout<< "Number is not between 1-9.\n"<<endl; }
}
		
void sumNumbers()
{
	for (int x=0; x<size; x++)
	{
		sum += pow (2.0, x);

		for (int y=0; y<size; y++)
		{
		}
	}
	cout<<"\nThe sum of the values: "<<sum<<"\n"<<endl;
}
Last edited by cherryteresa; Dec 4th, 2008 at 7:57 pm.
Reputation Points: 10
Solved Threads: 0
Newbie Poster
cherryteresa is offline Offline
17 posts
since Dec 2007

This thread is solved

Either the thread starter or a moderator has marked this thread as solved. You can most likely trust the responses and answers given. There is most likely no reason for any further responses to be posted here. If you have a related question, please start a new thread in this forum instead.

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in C++ Forum Timeline: replace characters in array
Next Thread in C++ Forum Timeline: Need Help!!!





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC