第2题: 魔法阵

本文介绍了一个关于修正魔法阵的编程挑战。主角Skylynf因绘制的魔法阵出现错误而受到Servant Saber的批评。为了帮助Skylynf避免被惩罚,需要编写程序将错误的魔法阵按照特定规则进行调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


2题: 魔法阵

【题目描述】 

昔有人,名斯凯利恩夫·卢克。其英文名乃SkyLYnf·Luke。汝知之何名?曰实,吾亦不知。其有别号曰ylm。何?吾亦不知。汝宜喻之。其乃吾。

他有一个Servant,叫做阿尔托莉雅·潘德拉贡,英文名是Arturia Pendragon,别名是Saber。她的 誓约胜利之剑(Excalibur)比红A的无限剑制厉害多了!(上一题的红A没有Saber厉害)

【题目描述·真】 

有一天,skylynf正在画召唤阵。这时候saber走到了召唤阵中间,告诉skylynf说:“你个菜鸟master,连召唤阵都画错了,赶快重画!”

于是saber拿出了一张写满了召唤阵画法的纸。

请你写一个程序来帮skylynf修改魔法阵,以防他被saber拿剑砍死。

魔法阵是一个n行n列的数列阵。每一个数都小于2147483647。

魔法阵被粗心的skylynf给画歪了,现在saber要让他把整个魔法阵移一下位。

saber给了一个例子:


1是一个错误的魔法阵。现在我们要像图2这样移位。图3是正确的魔法阵。

1的第4列,每个数字向下移4位,刚好回到原位,如图3所示。

 

这个模式是这样的:对于第i列的魔法阵来说,把每一个数字向下移i位。对于超过n的,就当做一个环,比如矩阵第四行第一列的数字21,我们就将它行数加一,发现他超过了4,于是就换到了第一行。

现在给你一个n*n的魔法阵,请按照这个规则来输出正确的魔法阵。

Skylynf已经超级口渴了。现在他特别想喝水。请你赶快写完这题好让skylynf去让DTZ倒水给他喝。

【输入描述】 

第一行一个数n(n小于100)

接下来n行,每行n个数。表示skylynf魔法阵。

【输出描述】 

N行,每行n个数,表示正确的魔法阵。

【样例输入】 

4

13 11 33 31

44 4 5 16

40 15 26 29

21 43 13 13

【样例输出】 

21 15 5 31

13 43 26 16

44 11 13 29

40 4 33 13

【数据范围】 

N<=100

Aij<maxlongint< span=""> </maxlongint<>



var

  i,j,k,n,m:longint;
  a,b:array[-1..1000,-1..1000]of longint;
begin
  assign(input,'b.in'); reset(input);
  assign(output,'b.out'); rewrite(output);


  readln(n);
  for i:=1 to n do
    for j:=1 to n do
      begin
        read(a[j,i]);
      end;
  for i:=1 to n do
    for j:=1 to n do
      begin
        b[((j+i-1) mod n)+1,i]:=a[i,j];


      end;
  for i:=1 to n do
  begin
    for j:=1 to n do
      begin
        write(b[i,j],' ');
      end;
    writeln;
  end;


  close(input);
  close(output);
end.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值