1 条题解
-
0
Pascal :
Program matrix; var n,i,j,tn,s,m,k:longint; procedure print(x,y:longint); //顺时针模拟所在层 begin if x=1 then begin writeln(s+y-1); exit end; s:=s+tn-1; if y=tn then begin writeln(s+x-1); exit end; s:=s+tn-1; if x=tn then begin writeln(s+tn-y); exit end; s:=s+tn-1; writeln(s+tn-x) end; function min(x,y:longint):longint; begin if x<=y then exit(x) else exit(y) end; Begin readln(n,i,j); m:=min(i,min(j,min(n-i+1,n-j+1))); //判断层数 i:=i-m+1; j:=j-m+1; //在去掉外层后的矩阵中的坐标 tn:=n; s:=1; for k:=1 to m-1 do begin //去掉外层,s表示新的起点数字 inc(s,4*tn-4); dec(tn,2) end; print(i,j); End.
- 1
信息
- ID
- 1945
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者