什么是循环三角形
如下所示
#include <iostream> using namespace std; int main( ) { int a[100][100]={0}; //数组元素默认是0 int n,m; cin>>n; //n是输入的数组大小(行数和列数) while(n<0||n>100) //如果输入的n大于,重新输入 cin>>n; if(n==1) //如果矩阵大小是1,则输出1 { cout<<‘\t‘<<1<<endl; return 0; } m=n/2; //m记录循环三角形的个数 int i=0,j,k,sum=0; //sum为矩阵各个位置上对应的数值 for(k=0;k<m;k++) //k来控制循环三角形的层次,k=0表示最外层三角形,逐渐...到k=m-1最内层三角形,要从最外层的三角形开始赋值 { i=k; //注意每层三角形下标与k的关系 for(j=k;j<n-2*k;j++) //三角形的行边赋值 { sum++; a[i][j]=sum; } for(i=k+1;i<n-k;i++) //三角形的斜边赋值,注意不要把三角形行边最右边的元素再次赋值 for(j=k;j<n-1-k;j++) if(i+j==n-1-k) { sum++; a[i][j]=sum; } for(i=n-2*(k+1);i>=1+k;i--) //三角形的列边赋值,注意不要将三角形列边最下面和最上面的元素再次赋值 { sum++; a[i][k]=sum; } } for(i=0;i<n;i++) //输出循环三角形 {for(j=0;j<n-i;j++) cout<<"\t"<<a[i][j]; cout<<endl; } return 0; }
时间: 2024-10-18 11:42:52