2013-10-09 171 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++; 
} 

瞧一美麗的三角形:)