-1

输入一个大于零的奇数值——我知道该怎么做。

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

54321
 432
  3

如果输入 11:

10987654321
 098765432
  9876543
 and so on

我看到我们必须将输入除以 10 并打印余数,但我无法打印倒计时。

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

2 回答 2

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;
}

这应该会给你你想要的输出。(如果“<< right <<”不起作用,将“right”与“left”交换)

还需要包含 iomanip 才能使用 setw( )

于 2013-10-09T03:28:11.300 回答
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++;
}

瞧,一个美丽的三角形:)

于 2013-10-09T04:19:49.617 回答