1. 程式人生 > >關於蛇形填數

關於蛇形填數

蛇形填數的核心就是轉向,

while(x+1<n&&!a[x+1][y])  a[++x][y]==++count;

每一個方向,都有臨界轉向範圍即x+1<n  和下一個陣列內是否有數值。

類似的,矩形環繞和三角環繞,

 

  1. #include <stdio.h>  
  2. main()  
  3. {  
  4.     int n,a[10][10]={0},i=1,j,x=1,y=0,t,c=1;  
  5.     a[0][0]=1;  
  6.     scanf("%d",&n);
  7.     while (i<n)       
  8.     {  
  9.         x=i;y=0;  
  10.         while
     (y<i||y==i)    
  11.         {  
  12.             a[x--][y++]=++c;  
  13.         }  
  14.         i++;  
  15.     }  
  16.     for (i=0;i<n;i++)  
  17.     {  
  18.         for(j=0;j<n-i;j++)  
  19.             printf("%5d",a[i][j]);  
  20.         printf("\n");  
  21.     }  
  22. }