標題:
[作業] APCS 實作題 10503 - 2 矩陣轉換
[打印本頁]
作者:
李泳霖
時間:
2022-1-14 15:13
標題:
[作業] APCS 實作題 10503 - 2 矩陣轉換
b965: 第 2 題 矩陣轉換
APCS 實作題 10503 - 2
[attach]12636[/attach]
[attach]12821[/attach]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class P2 {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String str,raw[];//宣告一個字串以及字串陣列
int r,c,m;//列、欄、操作
int d1[][],d2[][];//準備陣列d1跟d2可使旋轉用
int o[];//存操作指令
P2() throws IOException
{
//System.out.println("aa");
while((str=br.readLine())!=null)//一次輸入列、欄、操作 以空白分割
{
raw=str.split(" ");//將列、欄、操作以空白分割存到raw[0]raw[1]raw[2]內
r=Integer.parseInt(raw[0]);
c=Integer.parseInt(raw[1]);
m=Integer.parseInt(raw[2]);
d1=new int[r][c];//宣告陣列大小
d2=new int[r][c];//宣告陣列大小
o=new int[m];//宣告操作的陣列大小
for(int i=0;i<r;i++)//3列
{
raw=br.readLine().split(" ");//輸入完一列的值後存到raw內
for(int j=0;j<c;j++)//2欄
{
d1[i][j]=Integer.parseInt(raw[j]);//將raw每一編號的內值存到d1
}
}
raw=br.readLine().split(" ");
for(int i=0;i<m;i++)
o[i]=Integer.parseInt(raw[i]);
for(int i=o.length-1;i>=0;i--)
{
if(o[i]==1)//若為翻轉
{
for(int j=0;j<r;j++)
{
for(int k=0;k<c;k++)
{
d2[j][k]=d1[r-1-j][k];
}
}
for(int j=0;j<r;j++)
{
for(int k=0;k<c;k++)
{
d1[j][k]=d2[j][k];//copy一份給d1
//System.out.print(d1[j][k]+" ");
}
//System.out.println();
}
}
else//若為旋轉
{
//r-->列=3 c->欄=2
d2=new int[c][r];//列跟欄改變,重新設定d2陣列長度,方便做旋轉
//d2[2][3]
for(int j=0;j<c;j++)// j=0 1
{
for(int k=0;k<r;k++)//k=0 1 2
{
d2[j][k]=d1[k][c-1-j];
}
}
d1=new int[c][r];//d1陣列需要重新變成2列3欄
for(int j=0;j<c;j++)
{
for(int k=0;k<r;k++)
{
d1[j][k]=d2[j][k];
//System.out.print(d1[j][k]+" ");
}
//System.out.println();
}
//以下的列跟欄要做交換方便下次在旋轉
//c=2 r=3
int tmp=r;
r=c;
c=tmp;
}
//System.out.println();
}
System.out.println(r+" "+c);//先印a的列跟欄
for(int j=0;j<r;j++)
{
for(int k=0;k<c;k++)//k=0 1 c=2
{
if(k<c-1)//印第一欄的時候要加上空白
System.out.print(d1[j][k]+" ");
else
System.out.print(d1[j][k]);
}
System.out.println();
}
}
}
public static void main(String[] args) throws IOException {
// TODO 自動產生的方法 Stub
new P2();
}
}
/*
1 1 2 1 1
1 3 1 3 1
1 2
d2 d1
i j i j
0 0 <-- 0 1
0 1 <-- 1 1
0 2 <-- 2 1
1 0 <-- 0 0
1 1 <-- 1 0
1 2 <-- 2 0
*/
複製代碼
作者:
李泳霖
時間:
2022-1-14 15:14
此帖僅作者可見
作者:
郭哲維
時間:
2022-1-22 12:00
此帖僅作者可見
作者:
張淯祺
時間:
2022-1-22 12:00
此帖僅作者可見
作者:
李穎俊
時間:
2022-1-22 12:01
此帖僅作者可見
作者:
龔品誠
時間:
2022-1-25 22:24
此帖僅作者可見
作者:
黃柏叡
時間:
2022-1-28 23:16
此帖僅作者可見
作者:
曾宥程
時間:
2022-1-29 09:01
此帖僅作者可見
作者:
王翎璇
時間:
2022-1-29 10:21
此帖僅作者可見
作者:
王銘鴻
時間:
2022-2-12 11:34
此帖僅作者可見
作者:
林羿丞
時間:
2022-2-12 11:36
此帖僅作者可見
作者:
曾宥程
時間:
2022-2-12 11:40
此帖僅作者可見
作者:
黃柏叡
時間:
2022-2-12 12:01
此帖僅作者可見
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/)
Powered by Discuz! 7.2