题目描述:

首先输入一个5 * 5的数组,然后输入一行,这一行有四个数,前两个代表操作类型,后两个数x y代表需操作数据为以x y为左上角的那几个数据。

操作类型有四种: 
1 2 表示:90度,顺时针,翻转4个数 
1 3 表示:90度,顺时针,翻转9个数 
2 2 表示:90度,逆时针,翻转4个数 
2 3 表示:90度,逆时针,翻转9个数

输入:

输入有多组数据。
每组输入一个5 * 5的数组,然后输入一行,这一行有四个数,前两个代表操作类型,后两个数x y代表需操作数据为以x y为左上角的那几个数据。

输出:

输出翻转后的数组。

样例输入:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
1 3 1 1
样例输出:
11 6 1 4 5
12 7 2 9 10
13 8 3 14 15
16 17 18 19 20
21 22 23 24 25

import java.io.IOException;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;
import java.lang.Comparable;
import java.util.ArrayList;
import java.util.Collections;class Main
{public static final boolean DEBUG = false;public static int[][] a = new int[5][5];public static int op1, op2, x, y;public static void solve(){int xend = Math.min(5, x + op2);int yend = Math.min(5, y + op2);int[][] b = new int[5][5];//System.out.println("xend = " + xend + " yend = " + yend);for (int i = 0; i < 5; i++) {System.arraycopy(a[i], 0, b[i], 0, a[i].length);}if (op1 == 1) {for (int i = x; i < xend; i++) {for (int j = y; j < yend; j++) {b[j][x + yend - 1 - i] = a[i][j];}}} else {for (int i = x; i < xend; i++) {for (int j = y; j < yend; j++) {b[y + xend - 1 - j][y + i - x] = a[i][j];}}}for (int i = 0; i < 5; i++) {boolean first = true;for (int j = 0; j < 5; j++) {if (first) first = false;else System.out.print(" ");System.out.print(b[i][j]);}System.out.println();}}public static void main(String[] args) throws IOException{Scanner cin;if (DEBUG) {cin = new Scanner(new FileReader("d:\\OJ\\uva_in.txt"));} else {cin = new Scanner(new InputStreamReader(System.in));}while (cin.hasNext()) {for (int i = 0; i < 5; i++) {for (int j = 0; j < 5; j++) {a[i][j] = cin.nextInt();}}op1 = cin.nextInt();op2 = cin.nextInt();x = cin.nextInt();y = cin.nextInt();x--;y--;solve();}}
}

题目1171:C翻转相关推荐

  1. 九度_题目1361:翻转单词顺序

    //边界条件和&&短路特性的使用,写代码时一定要在纸上进行模拟而不是在电脑上调试,否则,效率是很低的.想不明白就不要写代码了,哦,亲 题目描述: JOBDU最近来了一个新员工Fish, ...

  2. LeetCode-226. 翻转二叉树

    题目描述: 翻转一棵二叉树. 示例: 输入: 4/ \2 7/ \ / \ 1 3 6 9 输出: 4/ \7 2/ \ / \ 9 6 3 1 思路分析: 通过观察,我们发现只要把二叉树上的每一个节 ...

  3. python链表定长翻转_python实现单链表翻转

    题目描述: 翻转一个链表 您在真实的面试中是否遇到过这个题? Yes 样例 给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null 挑 ...

  4. 单词翻转字母顺序c语言,单词翻转(C语言实现)

    题目:单词翻转.输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变,句子中单词以空格符隔开.为简单起见,标点符号和普通字母一样处理.例如,输入"I am a student.&q ...

  5. UVA220黑白棋题目详解

    题目直通车 UVA220 题目大意 黑白翻转棋游戏,棋子落子的位置必须是能和同色棋包住异色棋的位置,放好后被包住的异色棋要进行翻转,翻转成同色棋.需要对三种指令进行处理. L:打印所有合法操作,按照从 ...

  6. 226. 翻转二叉树【58】

    难度等级:容易 上一篇算法: 543. 二叉树的直径[71] 力扣此题地址: 226. 翻转二叉树 - 力扣(Leetcode) 1.题目:226. 翻转二叉树 给你一棵二叉树的根节点 root ,翻 ...

  7. Rotate Image

    You are given an n x n 2D matrix representing an image. Rotate the image by 90 degrees (clockwise). ...

  8. 【HDOJ】3487 Play with Chain

    Splay入门题目,区间翻转,区间分割. 1 /* */ 2 #include <iostream> 3 #include <string> 4 #include <ma ...

  9. 字节跳动面试题:用归并排序判断冒泡排序的轮数

    树状数组的讲解: https://www.cnblogs.com/xenny/p/9739600.html 面试题的答案在此: https://blog.csdn.net/CSDN_Coder_T/a ...

最新文章

  1. 近期活动盘点:智慧园区大数据精准招商思享会、数据法学研讨会、海外学者短期讲学(12.21-12.24)
  2. mybatis传递多个参数_Mybatis传递多个参数的4种方式(干货)
  3. K8S集群搭建:利用kubeadm构建K8S集群
  4. Linux 应用程序 网络通讯函数记录
  5. Windows 7如何限制运行特定的应用程序(转载)
  6. leetcode—26.求前k大值与前k小值
  7. 7.过渡案例:①进度条 ②小米图标翻转(父盒子一定要加初始值!!!)
  8. HTTP 和 SOCKS 代理有什么区别,指纹浏览器搭配哪种代理合适
  9. gmp计算机分类,GMP附录——计算机化系统汇总.pptx
  10. 除了努力挣钱,青春也不能错过的十件事
  11. 教师节感恩_在Excel中计算感恩节日期
  12. Android 发送短信自定义手机号自定义短信内容
  13. LC振荡电路的工作原理
  14. 开发一个简单的Mac应用
  15. tomcat 报错 Too many open files
  16. [No0000158]思维模型1-20
  17. 利用sympy库求解常微分方程:dsolve()函数
  18. C语言如何求出一堆整数的最大值
  19. HTTP请求状态码集合
  20. java 跨 module 引入包不成功问题

热门文章

  1. JFreeChart入门
  2. 给自己提个醒:关于document.getElementsByName无法获取非表单元素
  3. mysql去除select换行符_MySQL中去除字段中的回车符和换行符
  4. python绘制条形图-python 中条形图绘制
  5. python有道翻译法语-使用python2爬取有道翻译
  6. python 小说-用python给自己做一款小说阅读器过程详解
  7. python比较好的书籍推荐-推荐几本2019年初学者学习Python最佳书籍!
  8. python怎么安装matplotlib-为python安装matplotlib模块
  9. python while循环语句-Python While 循环语句
  10. python turtle画彩虹-python绘制彩虹图