我有一个程序,我必须以特定的方式打印数字三角形。我的程序打印例如以下5个:
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
我想用以下方式打印它们:
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
我尝试使用iomanip库的setw(),但它没有用。我的问题是如何解决这个问题。
#include <iostream>
using namespace std;
int n,br=1;
int main()
{
cin>>n;
while (br<=n)
{
for(int i=1; i<=br; i++)
{
cout<<i<<' ';
}
br++;
cout<<endl;
}
return 0;
}
答案 0 :(得分:1)
您可以在数字输出循环之前添加嵌套的for循环。然后,这个循环可以输出一些空格。
我不打算给你代码,这样你就可以自己做一些工作,但是如果你遇到麻烦,拿一张纸写下每个应该有多少个空格。线。看看你是否可以找到数字的模式或公式,然后代码应该更容易。
答案 1 :(得分:0)
试试这个代码! 另外我附上代码的输出。
#include <iostream>
using namespace std;
int main() {
int count=1;
int flag=0;
for(int i=1;i<=5;i++)
{
for(int j=5;j>0;j--)
{
if(i==j)
{
flag=1;
}
if(flag==1)
{
cout<<"\t"<<count;
count++;
}
else
{
cout<<"\t";
}
}
flag=0;
count=1;
cout<<"\n";
}
}
答案 2 :(得分:0)
您可以尝试在i循环下方的空间循环。
for(int j=1;j<=n-br;j++)
cout<<" ";
当br的值不断增加时,这应该线性地减小空间。