-1

0 より大きい奇数値を入力してください。入力方法は理解しています。

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

これにより、目的の出力が得られるはずです。(「<< 右 <<」が機能しない場合は、「右」と「左」を入れ替えてください)

また、 setw() を使用するにはiomanip を含める必要があります

于 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 に答える