编写算法,打印如下图像
分析: 由图形可知,该图由6层(斜对角), 第一层有1到6共6个数, 第二层有7到11共5个数, 第三层有12到15共4个数, 第四层有16到18共3个数, 第五层有19到20共2个数, 第六层有21共1个数。 故可以使用双层循环,来解决。
C++ 实现
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int n,i,j,k=1;
cout<<"please input a number:";
cin>>n;
int a[n+1][n+1];
for(i=1;i<=n;i++){
for(j=1;j<=n+1-i;j++){
a[i-1+j][j] = k++;
}
}
for(i=1;i<=n;i++){
for(j=1;j<=i;j++){
cout<<setw(4)<<a[i][j];
}
cout<<endl;
}
return 0;
}
运行结果