c++评论区都是用两个循环做的,给大家提供一个占用内存大,但是运行时间少的一个循环的写法吧,如果有改进欢迎您评论

#include <iostream>
#include <string>
using namespace std;
int main()
{
    int num;
    while(cin>>num)
    {
        bool active = false;//当*号输出到达最大时,改变递增方向
        int i=1;
        while(i)
        {
            cout<<string(2*num,' ')<<string(i,'*')<<endl;
            if(num==0)
                active = true;
            if(active)
            {
                i--;
                num++;
            }
            else
            {
                i++;
                num--;
            }
        }
    }
    return 0;
}