基礎練習 回形取數

  基礎練習 回形取數  
時間限制:1.0s   內存限制:512.0MB
      
問題描述
  回形取數就是沿矩陣的邊取數,若當前方向上無數可取或已經取過,則左轉90度。一開始位於矩陣左上角,方向向下。
輸入格式
  輸入第一行是兩個不超過200的正整數m, n,表示矩陣的行和列。接下來m行每行n個整數,表示這個矩陣。
輸出格式
  輸出只有一行,共mn個數,爲輸入矩陣回形取數獲得的結果。數之間用一個空格分隔,行末不要有多餘的空格。
樣例輸入
3 3
1 2 3
4 5 6
7 8 9
樣例輸出
1 4 7 8 9 6 3 2 5
樣例輸入
3 2
1 2
3 4
5 6
樣例輸出
1 3 5 6 4 2
----------
超時了。。。
 
附上一組測試數據
https://yunpan.cn/cY4JzEqmTSWvA  訪問密碼 9718
-----------------
import java.util.Scanner;  

public class Main {  
  
    public static void main(String[] args) {  
        Scanner input=new Scanner(System.in);  
        int m=input.nextInt(),n=input.nextInt();  
        int arr[][]=new int[m][n];  
        for(int i=0;i<m;i++){  
            for(int j=0;j<n;j++){  
                arr[i][j]=input.nextInt();  
            }  
        }  
        int i=0,j=0;  
        for (i = 0; i < (n + 1) / 2 && i < (m + 1) / 2; i++)  
        {  
            for (j = i; j < m - i; j++)  
                System.out.print(arr[j][i]+" ");  
            for (j = i + 1; j < n - i; j++)  
                System.out.print(arr[m - i - 1][j]+" ");  
            if (n - i - 1 > i)
                for (j = m - i - 2; j >= i; j--)  
                    System.out.print( arr[j][n - i - 1]+" ");  
            if (m - i - 1 > i)  
                for (j = n - i - 2; j > i; j--)  
                    System.out.print( arr[i][j]+" ");  
        }     
    }  
}  

 

--------------
 
C語言經過
---------------
#include <stdio.h>
 
int main()
{
    int m,n,i,j;
    int arr[210][210];
    scanf("%d%d",&m,&n);
     
    for(i = 0; i < m; i++)
        for(j = 0; j < n; j++)
            scanf("%d",&arr[i][j]);
     
    for(i = 0; i < (m+1)/2 && i < (n+1)/2; i++)
    {
        for(j = i; j < m-i; j++)
            printf("%d ",arr[j][i]);
        for(j = i+1; j < n-i; j++ )
            printf("%d ",arr[m-i-1][j]);
        if(n-i-1 > i)
        {
            for(j = m-i-2; j >= i; j--)
                printf("%d ",arr[j][n-i-1]);
        }
        if (m-i-1 > i)
        {
            for(j = n-i-2; j > i; j--)
                printf("%d ",arr[i][j]);
        }
    }
         
    return 0;
}
相關文章
相關標籤/搜索