蛇形矩陣
阿新 • • 發佈:2017-06-19
慢慢 blog i++ bsp -s pri -c splay img
如上圖所示,是一個4*4的蛇形矩陣
算法思路
由圖可觀察到該矩陣可分為上三角和下三角。每個三角要根據蛇形的奇偶行進行計數。
算法代碼
#include <stdio.h> int main() { int a[10][10]; int n; printf("Input n:"); scanf("%d",&n); int i=0,j=0,k=0; int count=1; for(i=0;i<n;i++)/*上三角 i代表是蛇形的奇偶行*/ { k=0; for(j=i;j>=0;j--) {if(i%2 == 0)/*蛇形偶數行的操作 j代表下標行減少*/ { a[j][k]=count; count++; k++;/*k代表下標列增加*/ } else/*蛇形奇數行的操作 j代表下標列jian少*/ { a[k][j]=count; count++; k++;/*k代表下標行增加*/ } } }for(i=n-1;i>0;i--)/*下三角*/ { k=n-1; for(j=n-i;j<n;j++) { if(i%2 == 0) { a[j][k] = count; count++; k--; } else { a[k][j] = count; count++; k--; } } } for(i=0;i<n;i++)/*循環輸出結果*/ { for(j=0;j<n;j++) { printf("%d\t",a[i][j]); } printf("\n"); } return 0; }
運行結果
感悟
一開始做這道題無從下手,然後慢慢找規律,會發現其實也不是太難。所以啊,好好耐心看題才是關鍵啊!
蛇形矩陣