如何使用 C++ 生成以下模式?

she*_*l25 -1 c++ for-loop

如果 n = 5

1   2   1   5
2   4   3   4
3   6   5   3
4   8   7   2
5   10  9   1
Run Code Online (Sandbox Code Playgroud)

我尝试了以下代码,但没有给出正确的输出。

#include <iostream>
using namespace std;
void main()
{
    int i, j;
    for (i = 1; i <= 5; i++) {
        for (j = 1; j >= i; j++) {
            cout << j;
            j += 2;
        }
        cout << endl;
    }
}
Run Code Online (Sandbox Code Playgroud)

有人可以更正此代码吗

cig*_*ien 5

输出的每一列都遵循一个模式,因此您可以在遍历行时打印出正确的值:

for (int i = 1; i <= n; ++i)
  std::cout << i         << " "   // natural numbers
            << 2 * i     << " "   // even natural numbers
            << 2 * i - 1 << " "   // odd natural numbers
            << n - i + 1 << "\n"; // reversed natural numbers
Run Code Online (Sandbox Code Playgroud)