1. 程式人生 > >面試經驗(三)---NA(美國國家儀器)

面試經驗(三)---NA(美國國家儀器)

【機試部分】一、輸出蛇形矩陣
import java.util.Scanner;

/**   
蛇形(回形)矩陣的實現: 
解題思路: 
    整體思路:每一圈的數值都是連續的,所以我們一圈一圈的賦值 
    對一圈的初始化: 
            1:設定(p,p)每一圈最左上角的座標 
                   (q,q)每一圈最右下角的座標 
            2:對每一圈分四部(上,右,下,左)分別初始化 
               為了使這四步對稱(賦值個數相同),按下圖這樣初始化 
               1的位置初始化--->上 
               2的位置初始化--->右 
               3的位置初始化--->下 
               4的位置初始化--->左 

    1 1 1 2 
    4     2 
    4     2 
    4 3 3 3 
*/

public class testDemo {
	public static void main(String[] args) {
		System.out.println("請輸入正整數:N=");
		Scanner scanner = new Scanner(System.in);
		int N = scanner.nextInt();
		printArr(huixing(N));
		
	}
	public static int[][] huixing(int n) {
		int[][] arr = new int[n][n];
		int p = 0, q = n - 1, num = 1, i = 0;
		while (p < q) {
			for (i = p; i < q; i++) {
				arr[p][i] = num;
				num++;
			}
			for (i = p; i < q; i++) {
				arr[i][q] = num;
				num++;
			}
			for (i = q; i > p; i--) {
				arr[q][i] = num;
				num++;
			}
			for (i = q; i > p; i--) {
				arr[i][p] = num;
				num++;
			}
			p++;
			q--;
		}
		if (p == q) {
			arr[p][q] = num;
		}
		return arr;
	}
	public static void printArr(int [][] arr){
		 for(int i=0;i<arr.length;i++)  
		    {  
		        for(int j=0;j<arr.length;j++)  
		        {  
		            System.out.print(arr[i][j]+"\t");
		        }  
		        	System.out.println();
		    }  
	}
}
【面試部分】一、英文自我介紹    涼了,四級都沒過,介紹什麼。大哭二、設計一個紙牌遊戲    蜘蛛紙牌瞭解一下,關鍵是思想,程式碼肯定是寫不出來啦!