南阳OJ 852题 蛇形填数(二)

xiaoxiao2021-02-28  131

这个题主要是要细心。我们可以把它看成一个三角形一层层的循环就好了

#include<stdio.h> int a[1000][1000]; void F(int n,int m){ int i,j; if(m>=n/2) return; for(i=1+m;i<=n-m*2;i++) a[m+1][i]=a[m+1][i-1]+1;//计算三角形的长 for(i=m+2,j=0;i<=n-m*2;j++,i++) a[i][n-1-2*m-j]=a[i-1][n-2*m-j]+1;// 计算三角形的斜边 for(i=n-1-m*2;i>m+1;i--) a[i][m+1]=a[i+1][m+1]+1;//计算三角形的高 F(n,m+1); } int main(){ int n,m,i,j; a[1][0]=0; scanf("%d",&m); while(m--){ scanf("%d",&n); a[1][1]=1; F(n,0); for(i=1;i<=n;i++){ printf("%d",a[i][1]); for(j=2;j<=n+1-i;j++) printf(" %d",a[i][j]); printf("\n"); } } return 0; }
转载请注明原文地址: https://www.6miu.com/read-27816.html

最新回复(0)