描述給定兩個整數m,n,生成乙個m*n的矩陣,矩陣中元素取值為a至z的26個字母中的乙個,a在左上角,其餘各數按順時針方向旋轉前進,依次遞增放置,當超過26時又從a開始填充。例如,當m=5,n=8時,矩陣中的內容如下:
a b c d e f g h
v w x y z a b i
u j k l m n c j
t i h g f e d k
s r q p o n m l
輸入m為行數,n為列數,其中m,n都為大於0的整數,m和n不大於50。
輸出分行輸出相應的結果
樣例輸入
4 9樣例輸出
a b c d e f g h i
v w x y z a b c j
u j i h g f e d k
t s r q p o n m l
思路:定義乙個二位陣列表示該矩陣,我定義的是乙個二位整形陣列,當然你也可以定義乙個二位的字元陣列.然後可以深搜的去旋轉改變陣列裡的數值,當然也可以模擬路徑去改變量值,下面我給出了兩種方法的原始碼(ps:**寫的不好別噴哦),我是在堆裡定義的陣列,所以初始裡面全是0,於是我就用1~26表示26個字母,當然你也可以去顯示的初始化,那樣你初始化為-1,就可以用0~25表示26個字母,這樣更方便.
//深搜
#include #include using namespace std;
int m,n;
int a[50][50];
int dx = ;
int dy = ;
void dfs(int y,int x,int n,int flag)
}int main()
printf("\n");
}}
//模擬
#include #include using namespace std;
int a[50][50];
int main()
}else if(flag == 1)
}else if(flag == 2)
}else if(flag == 3)}}
for(i = 0 ; i < m ; i++)
printf("\n");
}return 0;
}
一學妹讓我幫她改了一**後從其基礎上又得到下面**:
#include #include using namespace std;
const int max_n=100;
int a[max_n][max_n];
int main()
for(x=0;x
POJ 3752 字母旋轉遊戲
字母旋轉遊戲 time limit 1000ms memory limit 65536k total submissions 7053 accepted 2642 description 給定兩個整數m,n,生成乙個m n的矩陣,矩陣中元素取值為a至z的26個字母中的乙個,a在左上角,其餘各數按順時...
POJ 3752 字母旋轉遊戲 模擬 動態陣列
description 給定兩個整數m,n,生成乙個m n的矩陣,矩陣中元素取值為a至z的26個字母中的乙個,a在左上角,其餘各數按順時針方向旋轉前進,依次遞增放置,當超過26時又從a開始填充。例如,當m 5,n 8時,矩陣中的內容如下 a b c d e f g h v w x y z a b i...
poj 3752 字母旋轉遊戲 類似搜尋
total submissions 7417 accepted 2804 這道題大概的意思就是 從a z 一直不斷的迴圈旋轉,一直繞到中心 剛開始看到這道是我是試圖尋找規律 每次方向是左下右上 然後我就想到了傳說中的迷宮搜尋 用迷宮搜座標的形式來搜這道題 然後控制xy幾很好做了 include in...