以特定方式在C ++中打印数字三角形?

时间:2018-01-26 18:45:34

标签: c++ loops printing

我有一个程序,我必须以特定的方式打印数字三角形。我的程序打印例如以下5个:

1
1 2
1 2 3
1 2 3 4
1 2 3 4 5

我想用以下方式打印它们:

         1
       1 2
     1 2 3
   1 2 3 4
 1 2 3 4 5

我尝试使用iomanip库的setw(),但它没有用。我的问题是如何解决这个问题。

#include <iostream>
using namespace std;
int n,br=1;
int main()
{
    cin>>n;
    while (br<=n)
    {
        for(int i=1; i<=br; i++)
        {

            cout<<i<<' ';
        }
        br++;
        cout<<endl;
    }
    return 0;
}

3 个答案:

答案 0 :(得分:1)

您可以在数字输出循环之前添加嵌套的for循环。然后,这个循环可以输出一些空格。

我不打算给你代码,这样你就可以自己做一些工作,但是如果你遇到麻烦,拿一张纸写下每个应该有多少个空格。线。看看你是否可以找到数字的模式或公式,然后代码应该更容易。

答案 1 :(得分:0)

试试这个代码! 另外我附上代码的输出。

#include <iostream>

using namespace std;

int main() {
    int count=1;
    int flag=0;
    for(int i=1;i<=5;i++)
    {
        for(int j=5;j>0;j--)
        {
            if(i==j)
            {
                flag=1;
            }
            if(flag==1)
            {
                cout<<"\t"<<count;
                count++;
            }
            else
            {

                cout<<"\t";
            }

        }
        flag=0;
        count=1;
        cout<<"\n";
    }


}

enter image description here

答案 2 :(得分:0)

您可以尝试在i循环下方的空间循环。

for(int j=1;j<=n-br;j++)
    cout<<"  ";

当br的值不断增加时,这应该线性地减小空间。