输入一个大于零的奇数值 - 我明白该怎么做。
如果输入5,则打印出如下所示的三角形:
54321
432
3
如果输入11:
10987654321
098765432
9876543
and so on
我看到我们必须将输入除以10并打印剩余部分,但我在打印倒计时时遇到问题。
for (i = n; i >= 1; i--)
i = i - 1;
答案 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一个美丽的三角形:)