作业帮 > 综合 > 作业

矩阵相似问题 pascal

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/07/02 16:24:09
矩阵相似问题 pascal
【试题描述】 给出2个大小相同的矩阵方阵A,B,方阵中的元素为0或1.若A和B相似,满足下面条件:① A=B 相等,则输出0 ② A经过顺时针旋转90°成为B,则输出1 ③ A经过顺时针旋转180°成为B,则输出2 ④ A经过顺时针旋转270°成为B,则输出3 若A,B不相似,则输出-1; 例如 A:B:0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 则输出1,因为A顺时针旋转90°成为B.【输入描述】 第一行为一个整数n(1≤n≤20),接下来的n行表示A矩阵的01方阵,一行中的数之间均有一个空格分隔; 再接下来的n行表示B矩阵的01方阵,一行中的数之间也均有一个空格分隔 【输出描述】 一个整数(0,或1,或2,或3,或-1)即A,B相似的结果.【输入样例】 4 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 【输出样例】 1
矩阵相似问题 pascal
var n,i,j,k,g,b,c:integer;a:array[1..20,1..20]of integer;begin readln(n); for i:=1 to 2*n do begin for j:=1 to n do read(a[i,j]); readln; end; k:=0;g:=0;b:=0;c:=0; for i:=1 to n do for j:=1 to n do begin if a[i,j]=a[i+n,j] then k:=k+1; if a[i,j]=a[n+j,n+1-i] then g:=g+1; if a[i,j]=a[2*n+1-i,n+1-j] then b:=b+1; if a[i,j]=a[2*n+1-j,i] then c:=c+1; end; if k=n*n then writeln('0') else if g=n*n then writeln('1') else if b=n*n then writeln('2') else if c=n*n then writeln('3') else writeln('-1');end.不知道是否正确,你自己试试