# Needs help in logic

Hi guys: Can any one please help me in the logic. I try first but stuck in the middle of it.

1   1   1     1       1     1
2   4   8   16      32   64
3   9   27   81   243   729
4 16   64   256 1024  4096

#include <iostream>
using namespace std;

int main()
{
int row1 = 0;
int col1 = 0;
cout << "1" << "    " << "1" << "    " << "1" << "    " << "1" << "    " << "1" << "    " << "1" << endl;
for(row1 = 1; row1 <= 4; row1 ++)
{
for(col1 = 1; col1 <= 4; col1 ++)
{
cout << row1*col1;

system("pause");
return 0;
}
###### Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Commented:
I'll show you how I would do row 2 and let you figure the others out.

``````const int ITERATIONS = 6;

int multiplier = 2;
int num;

num = multiplier;
for(int i = 0; i < ITERATIONS; ++i)
{
cout<<num<<'\t';
num *= multiplier;
}
``````
0

Experts Exchange Solution brought to you by ConnectWise

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Commented:
Then you just change multiplier for each row. Just make sure you do num = multiplier every time before you get into the loop. Note: the '\t' is the tab character to make the output look more pretty. You could also use the iomanip library and setw if you wanted to pick how wide each column should be.

Bonus: You don't need to (and shouldn't) do row 1 separately. Just set the multiplier to 1 for that row.
0

Author Commented:
Thanks. I did it try to avoid the use of tab thing and use "  " but it dont work. Is there any way i can arrange them without using \t

#include <iostream>
using namespace std;

int main()
{
const int ITERATIONS = 6;
int multiplier = 1;
int num=1;
int i = 0;
int k = 0;
for(k = 0; k < 4; k++)
{
num = multiplier;
for(i = 0; i < ITERATIONS; ++i)
{
cout << num << '\t';
num *= multiplier;
}
cout << endl;
multiplier++;
}
system("pause");
return 0;
}
0

Author Commented:
Thanks.
0

Commented:
As I mentioned you could use setw (#include<iomanip>) to specify a width. You also could count the digits in the integer by finding the log base 10 and rounding down, but that's more complicated than necessary.
http://www.cplusplus.com/reference/iostream/manipulators/setw/
0

Commented:
So it would look something like this

``````#include<iostream>
#include<iomanip>

const int WIDTH = 10;
const int ITERATIONS = 6; //Note: consts usually go outside of main

int main()
{
cout << setw(WIDTH) << num;
}
``````

0

Author Commented:
ok thanks.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.