首页 > 解决方案 > 在 C++ 中输出一个数字三角形

问题描述

我的任务是向用户询问一个int,然后输出一个类似下面的“数字三角形”(在这种情况下,int等于5)。

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

但是,我为此任务编写的代码输出如下:

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

作为参考,这是我的代码:

#include <iostream>
    
using namespace std;

int main() {
        
    int size;
    cout << "Size: " << std::endl;
    cin >> size;
    
     for(int i = size; i >= 0; i--)
        {
            for(int j = 0; j <= i; j++)
           {
                if (j < i){
                    cout << j << " ";
                }
                else{
                    cout << j << " ";}
    
           }
            cout << endl;
    
        }
    
     
        return 0;
    }

有人可以告诉我要在我的程序中进行哪些更改以使其输出正确的三角形吗?提前致谢。

标签: c++

解决方案


您应该在行首而不是行尾打印空格。

for(int i = size; i >= 0; --i){
    for(int j = 0; j < size-i; ++j){cout << "  ";} // spaces at the beginning

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

推荐阅读