3

I want to print a number pattern:

1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
...
10 .  .. . .

This is my code:

#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
    int cols, row, num=1;

    for(row=1; row<=10; row++)
    {
        for(cols = row; cols <= row*10; cols = cols + row)
        {
            cout << cols << " ";
        }
        cout << "\n";
    }
    return 0;
    getch();
}

But it gives me the output:

1 2 3 4 5 6 7 8 9 10

2 4 6 8 10 12 14 16 18 20

3 6 9 12 15 18 21 24 27 30

4 8 12 16 20 24 28 32 36 40

5 10 15 20 25 30 35 40 45 50

6 12 18 24 30 36 42 48 54 60

7 14 21 28 35 42 49 56 63 70

8 16 24 32 40 48 56 64 72 80

9 18 27 36 45 54 63 72 81 90

10 20 30 40 50 60 70 80 90 100
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131

1 Answers1

3

To make that pattern you only really need the number of rows. The number of columns in each row happens to be equal to the row number, and the values are integer-multipliers of that row number.

#include <iostream>

int main()
{
    const int rows = 10;
    for (int row = 1; row <= rows; ++row)
    {
        for (int col = 1; col <= row; ++col)
        {
            int value = row * col;
            std::cout << value << ' ';
        }
        std::cout << '\n';
    }
}

Output

1 
2 4 
3 6 9 
4 8 12 16 
5 10 15 20 25 
6 12 18 24 30 36 
7 14 21 28 35 42 49 
8 16 24 32 40 48 56 64 
9 18 27 36 45 54 63 72 81 
10 20 30 40 50 60 70 80 90 100 
Cory Kramer
  • 114,268
  • 16
  • 167
  • 218
  • 1
    I think you did not provide what is the best long term help for OP. But that is of course opinion-based. Let me make sure however that you are aware of https://meta.stackoverflow.com/questions/334822/how-do-i-ask-and-answer-homework-questions – Yunnosch Aug 26 '20 at 12:05
  • 1
    @Yunnosch Noted, thank you for sharing that post. As I've been on the site for a number of years, my (personal) policy on answering homework questions: I will only answer them if the OP showed an honest attempt at solving it themselves (they did here). I try to supplement the code with an explanation of how it actually works. I try to keep the answer as "simple" as their original code was (don't introduce templates, classes, or lambdas unless they were trying to use them in the first place). – Cory Kramer Aug 26 '20 at 12:08
  • 1
    Can I also suggest being explicit in the answer about [why you got rid of `using namespace std;`](https://stackoverflow.com/q/1452721/1171191). – BoBTFish Aug 26 '20 at 12:15
  • I observed that you first provided working code. Then (at the point where I pessimistically expect OP to have stopped taking in information) you added a (admittedly enlightening) explanation. I totally agree with your policy. In this case however my impression was that OP did NOT demonstrate serious effort, the looped output was for my taste so far away from the goal, in more than one way, that I got an impression of "can you turn my HelloWorld into assignment-matching working program?". Very pessimistic, I admit. – Yunnosch Aug 26 '20 at 12:29
  • 4
    However, looking at the question with new eyes, I now can see how OPs code is only one step from achieving the goal and hence a serious, honorably effort. Thanks for the new angle. – Yunnosch Aug 26 '20 at 12:31