2013-10-09 172 views
-1

输入一个大于零的奇数 - 我知道该怎么做。输出一个三角形

打印出一个三角形,看起来像下面如果输入5:

54321 
432 
    3 

如果11输入:

10987654321 
098765432 
    9876543 
and so on 

我看到,我们必须除以10的输入和打印其余部分,但我无法打印倒计时。

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

对于你的小项目,“(i = n; i> = 1; i--)”相当于“Hello world”:P你试过这个吗? – P0W

+0

哈哈......是的,我知道。我很累:p – ghal

+0

@ user1034672:然后放弃现在,稍后再试。要么,要么告诉你有什么样的困难。 – SigTerm

回答

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

这应该给你你想要的输出。 (如果 “< <右< <” 不工作,交换 “右” 与 “左”)

ALSO 您需要包括了iomanip到运输及工务局局长用()

+0

我知道我根本不清楚;会有一个整数输入。另外,不能使用对象方法(如'num.length')和'setw'。它看起来像我需要一个嵌套的'for'循环。 – ghal

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

瞧一美丽的三角形:)