python - 如何将这个广泛的Python循环转换为C++?

我对Python知之甚少,但是我对C ++很有经验。
我一直在寻找一种算法,该算法将以六边形模式遍历所有点,并发现一个用Python编写的算法似乎正是我所需要的。问题是我不知道如何解释它。

这是Python代码:

for x in [(n-abs(x-int(n/2))) for x in range(n)]:
    for y in range(n-x):
        print ' ',
    for y in range(x):
        print ' * ',
    print


我会向您展示我的尝试,但是有30种不同的尝试都失败了(我敢肯定这只是我的错误解释)。

最佳答案

希望这对您有所帮助。测试了python和c ++代码。获得了相同的结果。

#include <iostream>
#include <cmath> 

using namespace std;

int main() {
    // your code goes here
    int n = 10;
    int a[n];

    for(int j = 0; j < n; j++) {
       a[j] = n - abs(j - (n / 2)); 
    }

    for(int x = 0; x < n; x++) {
        for(int y = 0; y < (n - a[x]); y++) {
            std::cout << " " << std::endl;
        }
    }

    for(int k = 0; k < a[n-1]; k++) {
        std::cout << " * " << std::endl;
    }

    std::cout << "i" << std::endl;

    return 0;
}