标签:nyoj蛇形填数二
1 2 3 4 5 12 13 14 6 11 15 7 10 8 9跟蛇形填数一样,只是填数要求按照三角形填。注意每组数据之间用空行隔开
2 5 4
1 2 3 4 5 12 13 14 6 11 15 7 10 8 9 1 2 3 4 9 10 5 8 6 7
#include<cstdio> #include<cstdlib> #include<cstring> using namespace std; const int max=1005; int a[max][max]; int main() { int n,k,i,j,l,sign; scanf("%d",&k); while(k--){ scanf("%d",&n); memset(a,0,sizeof(a)); a[0][0]=1; i=j=0; l=n; sign=0; if(n==1){ printf("1\n"); printf("\n");continue; } while(1){ sign=1; while(1){ if(a[i][j+1]!=0){break;} a[i][++j]=a[i][j-1]+1; if(j==n-1)break; sign=0; } while(1){ if(a[i+1][j-1]!=0){break;} a[++i][--j]=a[i-1][j+1]+1; if(i==n-1)break; sign=0; } while(1){ if(a[i-1][j]!=0){break;} a[--i][j]=a[i+1][j]+1; sign=0; } if(sign)break; } for(i=0;i<l;++i){ for(j=0;j<l-i;++j) printf("%d ",a[i][j]); printf("\n"); } printf("\n"); } return 0; }
标签:nyoj蛇形填数二
原文地址:http://blog.csdn.net/r1986799047/article/details/43486167