[算法] 打印菱形的另一种方法

int height, i, j, k, t;
std::cout << "Enter the height of diamond: ";
std::cin >> height;
for (i = 0; i < height; i++)
{
    t = std::abs((height >> 1) - i);
    for (j = 0; j < t; j++)
        std::cout << " ";
    for (k = 0; k < height - (t << 1); k++)
        std::cout << "*";
    std::cout << std::endl;
}

使用abs,便可以减少一半的循环,替代传统的先打印上半部分再打印下半部分的方案。

测试结果与预期相同:

        

posted @ 2019-12-07 13:44  ZXPrism  阅读(309)  评论(6)    收藏  举报