標題:
APCS 實作題 10503 - 2 矩陣轉換-JAVA
[打印本頁]
作者:
李泳霖
時間:
2023-6-3 10:18
標題:
APCS 實作題 10503 - 2 矩陣轉換-JAVA
本帖最後由 李泳霖 於 2023-6-10 17:12 編輯
b965: 第 2 題 矩陣轉換
APCS 實作題 10503 - 2
Arrays.copyOf() 用法
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Ch01 {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int r,c,m;//r-->B陣列的列,c=B陣列的欄,m=對A陣列的操作幾次
String str;//輸入用
String raw[];//切割用
int d1[][],d2[][],o[];//兩個二維陣列在互相替代,o存放的是對a的操作
Ch01() throws IOException //建構子,初始化用
{
while((str=br.readLine())!=null)//反覆的輸入r c m放在str裡面
{
raw=str.split(" ");
r=Integer.parseInt(raw[0]);
c=Integer.parseInt(raw[1]);
m=Integer.parseInt(raw[2]);
d1=new int[r][c];
o=new int[m];
for(int i=0;i<r;i++)//第一個迴圈進來時先做切割
{
raw=br.readLine().split(" ");
for(int j=0;j<c;j++)//第二個迴圈做分解
{
d1[i][j]=Integer.parseInt(raw[j]);
}
}
raw=br.readLine().split(" ");//輸入對a的操作資訊
for(int i=0;i<m;i++)
o[i]=Integer.parseInt(raw[i]);
/*
System.out.println("B的列:"+r+",欄:"+c+",對A的操作有"+m+"次");
System.out.println("B陣列的內容");
for(int i=0;i<r;i++)
{
for(int j=0;j<c;j++)
{
System.out.print(d1[i][j]+" ");
}
System.out.println();
}
System.out.println("A的操作有:");
for(int i=0;i<m;i++)
System.out.print(o[i]+" ");
System.out.println();
*/
for(int i=m-1;i>=0;i--)
{
if(o[i]==1)//翻轉
{
d2=new int[r][c];
for(int j=0;j<r;j++)
{
for(int k=0;k<c;k++)
{
d2[r-1-j][k]=d1[j][k];
}
}
for(int j=0;j<r;j++)
{
for(int k=0;k<c;k++)
{
d1[j][k]=d2[j][k];
}
}
/* System.out.println("翻轉:");
for(int j=0;j<r;j++)
{
for(int k=0;k<c;k++)
{
System.out.print(d1[j][k]+" ");
}
System.out.println();
} */
}
else//旋轉 (列跟欄要互換)
{
int tmp=r;
r=c;
c=tmp;
d2=new int[r][c];
for(int j=0;j<r;j++)
{
for(int k=0;k<c;k++)
{
d2[j][k]=d1[k][r-1-j];
}
}
d1=new int[r][c];
for(int j=0;j<r;j++)
{
for(int k=0;k<c;k++)
{
d1[j][k]=d2[j][k];
}
}
/*
System.out.println("旋轉:");
for(int j=0;j<r;j++)
{
for(int k=0;k<c;k++)
{
System.out.print(d1[j][k]+" ");
}
System.out.println();
}
*/
}
}
System.out.println(r+" "+c);
for(int i=0;i<r;i++)
{
for(int j=0;j<c;j++)
{
if(j<c-1)
System.out.print(d1[i][j]+" ");
else
System.out.print(d1[i][j]);
}
System.out.println();
}
}
}
public static void main(String[] args) throws IOException {
Ch01 c01=new Ch01();//建立Ch01的物件出來
}
}
複製代碼
作者:
李泳霖
時間:
2023-6-3 10:20
此帖僅作者可見
作者:
蔡秉勛
時間:
2023-6-3 17:30
此帖僅作者可見
作者:
富溢
時間:
2023-6-3 17:30
此帖僅作者可見
作者:
江家同
時間:
2023-6-3 17:30
此帖僅作者可見
作者:
周桓宇
時間:
2023-6-3 17:30
此帖僅作者可見
作者:
呂宏晏
時間:
2023-6-3 17:31
此帖僅作者可見
作者:
王宥凱
時間:
2023-6-3 17:31
此帖僅作者可見
作者:
王競儀
時間:
2023-6-3 17:31
此帖僅作者可見
作者:
張博翔
時間:
2023-6-3 17:31
此帖僅作者可見
作者:
陳佑俊
時間:
2023-6-3 17:31
此帖僅作者可見
作者:
許晏睿
時間:
2023-6-3 17:32
此帖僅作者可見
作者:
秉宏1
時間:
2023-6-3 17:33
此帖僅作者可見
作者:
上官語恬
時間:
2023-6-3 17:33
此帖僅作者可見
作者:
陳駿彥
時間:
2023-6-3 17:34
此帖僅作者可見
作者:
歐睿仁
時間:
2023-6-3 17:40
此帖僅作者可見
作者:
李泳霖
時間:
2023-6-3 17:43
此帖僅作者可見
作者:
黃昱齊
時間:
2023-6-10 16:39
此帖僅作者可見
作者:
江家同
時間:
2023-6-10 17:11
此帖僅作者可見
作者:
富溢
時間:
2023-6-10 17:14
此帖僅作者可見
作者:
黃昱齊
時間:
2023-6-10 17:15
此帖僅作者可見
作者:
陳佑俊
時間:
2023-6-10 17:17
此帖僅作者可見
作者:
王宥凱
時間:
2023-6-10 17:23
此帖僅作者可見
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://seed.istak.org.tw/)
Powered by Discuz! 7.2