• 2000年华中科技大学计算机研究生机试真题 对称矩阵


    题目1180:对称矩阵

    时间限制:1 秒

    内存限制:32 兆

    特殊判题:

    提交:2518

    解决:1295

    题目描述:

    输入一个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!
    来源:
    2000年华中科技大学计算机研究生机试真题
     1 #include <iostream>
     2 #include <cstring>
     3 #include <cstdio>
     4 using namespace std;
     5 int map[105][105];
     6 int main(){
     7     //freopen("D:\INPUT.txt","r",stdin);
     8     int n;
     9     while(cin>>n){
    10         int i,j;
    11         for(i=1;i<=n;i++){
    12             for(j=1;j<=n;j++){
    13                 scanf("%d",&map[i][j]);
    14             }
    15         }
    16         for(i=1;i<=n;i++){
    17             for(j=1;j<=n;j++){
    18                 if(map[i][j]!=map[i][n-j]){
    19                     i=n+2;
    20                     break;
    21                 }
    22             }
    23         }
    24         if(i==n+1){
    25             cout<<"Yes!"<<endl;
    26             continue;
    27         }
    28         for(i=1;i<=n;i++){
    29             for(j=1;j<=n;j++){
    30                 if(map[i][j]!=map[n-i][j]){
    31                     i=n+2;
    32                     break;
    33                 }
    34             }
    35         }
    36         if(i==n+1){
    37             cout<<"Yes!"<<endl;
    38             continue;
    39         }
    40 
    41         for(i=1;i<=n;i++){
    42             for(j=1;j<=n;j++){
    43                 if(map[i][j]!=map[j][i]){
    44                     i=n+2;
    45                     break;
    46                 }
    47             }
    48         }
    49         if(i==n+1){
    50             cout<<"Yes!"<<endl;
    51             continue;
    52         }
    53 
    54         for(i=1;i<=n;i++){
    55             for(j=1;j<=n;j++){
    56                 if(map[i][j]!=map[n-j][n-i]){
    57                     i=n+2;
    58                     break;
    59                 }
    60             }
    61         }
    62         if(i==n+1){
    63             cout<<"Yes!"<<endl;
    64             continue;
    65         }
    66         cout<<"No!"<<endl;
    67     }
    68     return 0;
    69 }
  • 相关阅读:
    【English】20190307
    【Teradata】四舍五入函数
    【Teradata】配置PE和AMP(congfig和reconfig工具、vprocmanager)
    【English】20190306
    【Teradata】数据库初始化(sysinit和dip工具)
    【Teradata】日期类型转换
    Optional常用操作
    Stream学习笔记
    拦截Restful API的三种方式
    maven之可执行jar包
  • 原文地址:https://www.cnblogs.com/Deribs4/p/4599039.html
Copyright © 2020-2023  润新知