日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

图形的花样翻转(洛谷P1205题题解,Java语言描述)

發(fā)布時間:2025/3/15 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图形的花样翻转(洛谷P1205题题解,Java语言描述) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題目要求

P1205題目鏈接

分析

每一種變換都很麻煩,不好推,我選擇把每一個封裝成單獨的函數(shù),并且為了變換5對變換1、2、3的復用而調(diào)整了參數(shù)和返回值。

具體的每種變換可以看具體的函數(shù)實現(xiàn),很清楚的。

怎么推我也不太會,我覺得就可以表下標[i,j][i,j][i,j],找規(guī)律,然后瘋狂debug……我找了大概一個半小時……

AC代碼(Java語言描述)

import java.util.Arrays; import java.util.Scanner;public class Main {private static char[][] chars1, chars2;private static int num;private static boolean judge1(char[][] chars1) {char[][] newChars = new char[num][num];for (int i = 0; i < num; i++) {for (int j = 0; j < num; j++) {newChars[j][num-i-1] = chars1[i][j];}}return Arrays.deepEquals(newChars, chars2);}private static boolean judge2(char[][] chars1) {char[][] newChars = new char[num][num];for (int i = 0; i < num; i++) {for (int j = 0; j < num; j++) {newChars[num-i-1][num-j-1] = chars1[i][j];}}return Arrays.deepEquals(newChars, chars2);}private static boolean judge3(char[][] chars1) {char[][] newChars = new char[num][num];for (int i = 0; i < num; i++) {for (int j = 0; j < num; j++) {newChars[num-j-1][i] = chars1[i][j];}}return Arrays.deepEquals(newChars, chars2);}private static char[][] generateJudge4Arr() {char[][] newChars = new char[num][num];for (int i = 0; i < num; i++) {for (int j = 0; j < num; j++) {newChars[i][num-j-1] = chars1[i][j];}}return newChars;}private static boolean judge4() {char[][] newChars = generateJudge4Arr();return Arrays.deepEquals(newChars, chars2);}private static boolean judge5() {char[][] newChars = generateJudge4Arr();return judge1(newChars) || judge2(newChars) || judge3(newChars);}private static boolean judge6() {return Arrays.deepEquals(chars1, chars2);}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);num = Integer.parseInt(scanner.nextLine());chars1 = new char[num][num];chars2 = new char[num][num];for (int i = 0; i < num; i++) {char[] tempChars = scanner.nextLine().toCharArray();System.arraycopy(tempChars, 0, chars1[i], 0, num);}for (int i = 0; i < num; i++) {char[] tempChars = scanner.nextLine().toCharArray();System.arraycopy(tempChars, 0, chars2[i], 0, num);}scanner.close();if (judge1(chars1)) {System.out.println(1);} else if (judge2(chars1)) {System.out.println(2);} else if (judge3(chars1)) {System.out.println(3);} else if (judge4()) {System.out.println(4);} else if (judge5()) {System.out.println(5);} else if (judge6()) {System.out.println(6);} else {System.out.println(7);}}}

總結(jié)

以上是生活随笔為你收集整理的图形的花样翻转(洛谷P1205题题解,Java语言描述)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。