1. 程式人生 > >南陽OJ 852題 蛇形填數(二)

南陽OJ 852題 蛇形填數(二)

這裡寫圖片描述
這個題主要是要細心。我們可以把它看成一個三角形一層層的迴圈就好了

#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; }