二維陣列鐘擺式輸出
無整理 不簡書
例題:二維陣列第一行是小寫字母,第二行是大寫字母,鐘擺式輸出(AaCcEe...WwYyZzXxVv....DdBb)
本題只要做兩件事,第一件事是儲存,第二件事是輸出,把儲存和輸出放到同一迴圈中,輸出的字母一定要在陣列中存在,在這裡我把儲存和輸出同步:一共26個字母也就是迴圈26次,每次迴圈儲存並輸出一個相同字母,陣列是按照正常的AaBbCcDd順序儲存並且儲存和輸出的順序符合鐘擺式。
//二維陣列第一行是小寫字母,第二行是大寫字母,擺鐘式輸出
char[][] n = new char[2][26];
for(int i = 0; i < 26; i++)
{
if(i < 13)
{//0 a 2 c 4 e 12 y
n[0][2 * i] = (char)(2 * i + 65);
n[1][2 * i] = (char)(2 * i + 97);
System.out.print(n[0][2 * i]);
System.out.print(n[1][2 * i]);
}
else
{//25 z 23 x ... //13 - 25 14 - 23 15 - 21
n[0][51 - 2 * i] = (char)(51 - 2 * i + 65);
n[1][51 - 2 * i] = (char)(51 - 2 * i + 97);
System.out.print(n[0][51 - 2 * i]);
System.out.print(n[1][51 - 2 * i]);
}
}
前13個儲存字母順序(二維陣列的下標)
0,2,4,6,...,24 (2 i)
前13個輸出字母順序(鐘擺的前13項)
Aa,Cc,Ee,...,Yy(2 i + 65 /2 i + 97)
0 - Aa,2 - Cc,4 - Ee,...,12 - Yy
後13個儲存字母順序(二維陣列的下標)
25,23,21,19,...,1 (51 - 2 i)
後13個輸出字母順序(鐘擺的後13項)
Zz,Xx,Vv,...,Bb (51 - 2 i + 65/51 - 2 i + 97)
25 - Zz,23 - Xx,21 - Vv,...,1 - Bb
關於2 i 和51 - 2 i是如何計算出來的,參考如下:
0 2 4 6 ...很容易看出是偶數 用 i (0,1,2,3...)的通式表示就是2 i
25 23 21 19...與 i (13,14,15,16...) 的對應關係,很容易看出 i 每增加 1 下標下降 2 ,所以 i 與下標成線性關係,斜率是 -2 ,帶入數值計算出 下標 = 51 - 2 i
如有錯誤之處,請指正。如有更好的方法,歡迎討論。
相關文章
- JavaSE 陣列:一維陣列&二維陣列Java陣列
- 二維陣列每行分別進行從小到大排序輸出陣列排序
- js 一維陣列轉二維陣列JS陣列
- js 二維陣列轉一維陣列JS陣列
- 二維陣列陣列
- PHP中二維陣列與多維陣列PHP陣列
- 二維陣列排序陣列排序
- Java二維陣列Java陣列
- vector 二維陣列陣列
- 二維陣列排序函式array_multisort()陣列排序函式
- 【MATLAB】利用size()函式輸出陣列大小Matlab函式陣列
- 二維陣列和稀疏陣列互轉陣列
- C/C++ 二維陣列的理解(多維陣列)C++陣列
- php 二維陣列排序PHP陣列排序
- 二維陣列查詢陣列
- 二維樹狀陣列陣列
- 二維陣列行排序陣列排序
- 二維陣列練習陣列
- Java 二維陣列轉一維Java陣列
- 指標陣列和陣列指標與二維陣列指標陣列
- 二級指標,二維陣列函式引數傳遞指標陣列函式
- 7-蛇形二維陣列陣列
- JAVA基礎--二維陣列Java陣列
- 二維陣列的獲取陣列
- Kotlin建立二維Int陣列Kotlin陣列
- 二維陣列與指標陣列指標
- 求二維陣列中最大子陣列的和陣列
- 逗號分隔,輸出陣列陣列
- 陣列二:使用陣列可變函式為陣列排序陣列函式排序
- Java 學習筆記 二維陣列和物件陣列Java筆記陣列物件
- 二維陣列JSON.stringify 後,第二層陣列解析為空陣列JSON
- 二維陣列中的查詢陣列
- C的二維陣列(習題)陣列
- 二維陣列程式碼案例分析陣列
- 二維陣列傳參要點陣列
- js二維陣列新認識JS陣列
- Python如何對二維陣列求和Python陣列
- 二維陣列和函式綜合程式設計練習陣列函式程式設計
- Rust與Java程式碼比較:將二維陣列轉為三維陣列RustJava陣列