输出三角形

时间:2013-10-09 03:17:32

标签: c++

输入一个大于零的奇数值 - 我明白该怎么做。

如果输入5,则打印出如下所示的三角形:

54321
 432
  3

如果输入11:

10987654321
 098765432
  9876543
 and so on

我看到我们必须将输入除以10并打印剩余部分,但我在打印倒计时时遇到问题。

for (i = n; i >= 1; i--) 
  i = i - 1;

2 个答案:

答案 0 :(得分:1)

使用for循环(从0开始),并在每次迭代时打印从i到string.length()的子字符串 - 1使用设置的宽度来增加缩进,如下代码所示:

string num = "10987654321";

for (int i = 0; i < num.length(); ++i){
   cout << setw(i) << right << num.substr(i, num.length()-i) << endl;
}

这可以为您提供所需的输出。 (如果&#34;&lt;&lt;&lt; right&lt;&lt;&#34;不工作,交换&#34;正确&#34;与&#34;左&#34;)

同时 你需要包含iomanip才能使用setw()

答案 1 :(得分:0)

int num = 10987654321;
int numSpaces = 1;

cout << num << endl;

for (int i = 0; i >= 1; i--)
{
    for (int j = 0; j < numSpaces; j++)
    {
         cout << " ";
    } 

    cout << num % 10 << endl;

    num = num / 10;

    numSpaces++;
}

Voila一个美丽的三角形:)