首页 > 解决方案 > 有没有办法在不使用嵌套循环的情况下打印以下模式?

问题描述

此图像包含一个图案。'*' 被减去,'-' 被添加。

我很困惑我不允许使用嵌套循环。我不知道为什么它让我感到困惑。

#include <iostream>
using namespace std;
int main(){
    string a="*";
    for (int i=0; i<4; i++){
        cout<<a<<endl;
        a=a+"*";
    }
}

我尝试了这段代码来测试打印成功的模式。以下是它制作的图案。

*
**
***
****

这似乎很好,因为 C++ 允许a=a+"*"将字符串添加到字符串数据中。但我需要的模式是

****
***-
**--
*---

在其中,可以添加“-”,但如何减去“*”。我做不到a=a-'*'。我需要使用字符串的索引吗?但只允许一个循环。

标签: c++string

解决方案


for (int i=0; i<4;  i++){
    cout << string((4-i), '*') << string(i, '-')<< endl;
}

推荐阅读