首页 > 解决方案 > 我需要这个数字金字塔来将特定的数字序列打印到控制台吗?

问题描述

我需要一个与此相同的数字金字塔:

     1
    121
   12321
  1234321
 123454321
12345654321

我是编程新手,如果有人不会通过代码运行并告诉我编译器如何理解每一行。

我听说有一种方法可以使用嵌入式 while 循环来做到这一点。如果有人知道如何做到这一点并且可以告诉我,那就太好了。

我拥有的代码部分来自互联网,而不仅仅是我的。

for (int i = 1; i <= rows; ++i)
{
    for (int space = 1; space <= rows - i; ++space)
    {
        cout << "  ";
        ++count;
    }

    while (k != 2 * i - 1)
    {
        if (count <= rows - 1)
        {
            cout << i << " ";
            ++count;
        }
        else
        {
            ++count1;
            cout << i + k - 2 * count1 << " ";
        }
        ++k;
    }
    count1 = count = k = 0;
    cout << endl;
}

cout << "\n\n\n";
system("PAUSE");

标签: c++

解决方案


试试这个代码:

int main(void) {
  int i, j, k, l, n = 6;
  for (i = 1; i <= n; i++) {
    for (j = 1; j <= n - i; j++) {
      cout << " ";
    }
    for (k = 1; k <= i; k++) {
      cout << k;
    }
    for (l = i - 1; l >= 1; l--) {
      cout << l;
    }
    cout << "\n";
  }
  return 0;
}

推荐阅读