首页 > ACM题库 > 九度OJ > 九度-1180-对称矩阵[解题代码]
2013
12-13

九度-1180-对称矩阵[解题代码]

题目来源:2000年华中科技大学计算机研究生机试真题

题目描述:

输入一个N维矩阵,判断是否对称。

输入:

输入第一行包括一个数:N(1<=N<=100),表示矩阵的维数。
接下来的N行,每行包括N个数,表示N*N矩阵的元素。

输出:

可能有多组测试数据,对于每组数据,
输出"Yes!”表示矩阵为对称矩阵。
输出"No!”表示矩阵不是对称矩阵。

样例输入:
4
16 19 16 6 
19 16 14 5 
16 14 16 3 
6 5 3 16 
2
1 2
3 4
样例输出:
Yes!
No!

java 代码如下:
import java.io.BufferedInputStream;
import java.util.Scanner;

public class Main {

	static int arr[][];
	public static void main(String[] args) {
		Scanner s = new Scanner(new BufferedInputStream(System.in));
		while(s.hasNextInt()){
			int n = s.nextInt();
			arr = new int[n][n];
			for(int i=0; i<n; i++)
				for(int j=0; j<n; j++)
					arr[i][j] = s.nextInt();
			System.out.println(m(n));
		}
	}
	private static String m(int len) {
		for(int i=0; i<len; i++){
			for(int j=0; j<len; j++){
				if(arr[i][j] == arr[j][i])
					continue;
				else
					return "No!";
			}
		}
		return "Yes!";
	}

}

/**************************************************************
	Problem: 1180
	User: coder
	Language: Java
	Result: Accepted
	Time:1410 ms
	Memory:101336 kb
****************************************************************/


  1. #include <stdio.h>
    int main()
    {
    int n,p,t[100]={1};
    for(int i=1;i<100;i++)
    t =i;
    while(scanf("%d",&n)&&n!=0){
    if(n==1)
    printf("Printing order for 1 pages:nSheet 1, front: Blank, 1n");
    else {
    if(n%4) p=n/4+1;
    else p=n/4;
    int q=4*p;
    printf("Printing order for %d pages:n",n);
    for(int i=0;i<p;i++){
    printf("Sheet %d, front: ",i+1);
    if(q>n) {printf("Blank, %dn",t[2*i+1]);}
    else {printf("%d, %dn",q,t[2*i+1]);}
    q–;//打印表前
    printf("Sheet %d, back : ",i+1);
    if(q>n) {printf("%d, Blankn",t[2*i+2]);}
    else {printf("%d, %dn",t[2*i+2],q);}
    q–;//打印表后
    }
    }
    }
    return 0;
    }