仅使用循环的 C++ 数字模式解决方案

C++ Number Pattern Solution Using only Loops

您好,我在网站上搜索过,想看看有没有类似的问题,但是没有找到。如果有类似的事情,我深表歉意。我应该编写一种给定输入的数字模式,如下所示,不使用列表、向量、数组等,只使用循环 (forwhiledo-while)

输入:5

输出:

 
1 2 3 4 5

2 2 3 4 5

3 3 3 4 5

4 4 4 4 5

5 5 5 5 5 

(没有所有额外的行,但它不会正确显示) 我尝试使用以下代码:

int count = 1;
int counter = 1;

while (count <= a) {
        cout << count << " ";
        count++;
    }
    cout << endl;
    for (int i = 1 + counter; i <= a; i++) {
        cout << i << " ";
        for (int k = i; k <= a; k++) 
            cout << k << " ";
        cout << endl;
        counter++;
    }

我得到输出:

1 2 3
2 2 3
3 3

我明白我解决这个问题的方式(只使用两个 for 循环)是不正确的,但我不知道如何解决这个问题。任何意见是极大的赞赏。谢谢!

您将不得不打印 i i-1 次而不是一次。

int count = 1;
int counter = 1;

while (count <= a) {
    cout << count << " ";
    count++;
}
cout << endl;
for (int i = 1 + counter; i <= a; i++) {
    for (int k = 1; k < i; k++) // print i (i-1) times
        cout << i << " ";
    for (int k = i; k <= a; k++) 
        cout << k << " ";
    cout << endl;
    counter++;
}