编写算法:打印具有下面规律的图形。
1
5 2
8 6 3
10 9 7 4
分析:
外层循环:层号i,1–>n
内层循环:数组列号j,1–>(n+1-i)
i层第 j个数据对应的数组元素是a[i-1+j][j]
完整代码:
#include <iostream>
using namespace std;
/*
伪代码
k =1;
for(i=1;i<=n;i=i+1)
for( j=1;j<=n+1-i;j=j+1)
{
a[i-1+j][j]=k;
k=k+1;
}
for(i=1;i<=n;i=i+1)
{
print( “换行符”);
for( j=1;j<=i;j=j+1)
print(a[i][j]);
}
*/
void cyclePrint(int n){
int a[100][100];//存储打印的规则图形的矩阵,下三角矩阵
int k = 1;//打印的数据,1-n
//赋值
for (int i = 1; i <= n; ++i)
{
for (int j = 1; j <= n+1-i; ++j)
{
a[i-1+j][j] = k;
k++;
}
}
//打印
for (int i = 1; i <= n; ++i)
{
cout<<endl;
for (int j = 1; j <= i; ++j)
{
cout<<a[i][j]<<" ";
}
}
}
int main(int argc, char const *argv[])
{
cyclePrint(4);
return 0;
}