c++ - 如何使用 3 个 for 循环而不是 4 个来打印以下模式?

标签 c++

我正在尝试打印以下图案:

*
**
***
****
*****
****
***
**
*

现在,我知道如何使用 4 个 for 循环来做到这一点:

for(i=1;i<=n;i++)
{
    for(j=1;j<=i;j++)
    {
        cout<<"*";
    }
    cout<<"\n";
}

打印前半部分和后半部分:

for(i=1;i<=n;i++)
 {
    for(j=n;j>i;j--)
    {
        cout<<"*";
    }
     cout<<"\n";
}

仔细观察,两个外部 for 循环是相同的。 IE。, 对于(i=1;i<=n;i++)。 有没有办法在 i-for 循环中同时嵌套“j”for 循环?

最佳答案

只使用一个循环:

#include <iostream>
#include <string>

int main() {
   for (unsigned i = 0; i < 10; ++i)
      std::cout << std::string( i < 5 ? (i+1) : 10 - (i+1), '*') << std::endl;

   return 0;
}

关于c++ - 如何使用 3 个 for 循环而不是 4 个来打印以下模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38943243/

相关文章:

c++ - 带有模板关键字的伪析构函数调用

c++ - 为什么函数调用是一个 xvalue(如果返回类型是一个右值)?

c++ - 如何包含带有多个 dll/dylib 的外部(共享)库

c++ - 使用 libcurl 下载功能,但它不完整

c++ - 使用 GDI+ 注入(inject) DLL 导致记事本崩溃

带有参数和快速调用的 C++ typedef

c++ - 将字符串计算为 C++ 中的表达式

c++ - 从 'float' 到 'LONG' 的转换需要缩小转换

c++ - 使用 Direct3D 9 在硬件中将 RGB 表面转换为 YUV

c++ - 使用 jsoncpp 将字符串映射转换为 json