试图创建一个for循环来显示从1(#)到8(#)的哈希符号

Trying to create a for loop to display hash symbol from 1 (#) to 8 (#)

本文关键字:符号 哈希 显示 循环 创建 一个 for      更新时间:2023-10-16

我正在读一本挑战我解决一些c++问题的书。我能够解决一个需要我从8个符号中显示(#)到1的问题。我可以用下面的代码完成这个任务:

for (int i = 0; i < 8; i++) {
    for (int j = 0; j < (8 - i); j++) {
        cout << "#";
    }
    cout << endl;
}

然而,现在我正试着数,从1(#)到8 (#);和第一个问题正好相反

有多种方法可以实现这一点。一种方法是设置i0递增到7,使j每次迭代递增小于或等于i + 1。即(未测试的代码)

for (int i = 0; i < 8; i++) {
    for (int j = 1; j <= i + 1 ; j++) {
        cout << "#";
    }
    cout << endl;
}
for (int i = 0; i < 8; i++) {
    for (int j = 0; j <= i; j++) {
        cout << "#";
    }
    cout << endl;
}

要在这里添加其他答案,请不要忘记iomanip中非常方便的std::setfill命令:

#define FILL_CHAR '#'
#define COUNT 8
std::cout << "Count upn";
for (size_t i = 1; i <= COUNT; ++i)
{
    std::cout << std::setfill(FILL_CHAR) << std::setw(i);
    std::cout << FILL_CHAR << std::endl;
}
std::cout << "Count downn";
for (size_t i=0; i<COUNT; ++i)
{
    std::cout << std::setfill(FILL_CHAR) << std::setw(COUNT-i);
    std::cout << FILL_CHAR << std::endl;
}

现场演示

输出
Count up
#
##
###
####
#####
######
#######
########
Count down
########
#######
######
#####
####
###
##
#