1. 程式人生 > >蛇形矩陣

蛇形矩陣

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

運行結果

技術分享


感悟

一開始做這道題無從下手,然後慢慢找規律,會發現其實也不是太難。所以啊,好好耐心看題才是關鍵啊!

蛇形矩陣