自然数的简单三角形/半金字塔



我已经编写了以下C++代码来显示自然数的金字塔

#include <iostream>
using namespace std;
int main()
{
int i,j,n;
cout<<"Enter Size:";
cin>>n;
for(i=n;i>=1;i--)
{
for (j=i;j>0;j--)
{
cout<<j;
}
cout<<endl;

}
return 0;
}

但如果我们输入n=3,则该代码显示

321
32
1

我想将其显示为

123
12
1

您必须更改j循环,它从i变为0,您需要将它从1变为1+1,将它更改为this,它应该可以工作:

for (j=1;j<i+1;j++)

简单地反转第二个循环。

#include <iostream>
using namespace std;
int main()
{
int i,j,n;
cout<<"Enter Size:";
cin>>n;
for(i=n;i>=1;i--)
{
for (j=1;j<=i;j++) {cout << j << 't';}
cout<<endl;
}
}

注意:t选项卡只是为了美观,正如您在循环达到超过1位数的数字时看到的那样:

Enter Size:10
1       2       3       4       5       6       7       8       9       10
1       2       3       4       5       6       7       8       9
1       2       3       4       5       6       7       8
1       2       3       4       5       6       7
1       2       3       4       5       6
1       2       3       4       5
1       2       3       4
1       2       3
1       2
1

使用CCD_ 2可以获得相同的结果。

另请参见"为什么是";使用命名空间std"被认为是不好的做法?正确压痕的重要性

如果您想显示如下:123121

使用

cout<<"Enter Size:";
cin>>n;
for(i=1;i<=n;i++)
{
for (j=i;j<=n-1;j++)
{
cout<<j<<endl;
}
cout<<endl;

我把你的案例从头到尾展示出来。

最新更新