2 D配列振り子出力
1452 ワード
整理なし
例題:2次元配列の1行目は小文字、2行目は大文字、振り子式出力(AaCcEe...WwYyZzXxVv.....DdBb)本題は2つのことをすれば、1つ目は記憶、2つ目は出力、記憶と出力を同じサイクルに入れ、出力のアルファベットは必ず配列の中に存在しなければならない.ここで私は記憶と出力を同期する:全部で26文字で26回循環し、同じアルファベットを循環して格納して出力するたびに、配列は通常のAaBbCcDdの順序で格納され、格納と出力の順序は振り子式に合致する.
最初の13文字はアルファベット順(2 D配列の下付き)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個の格納アルファベット順(2次元配列の下付き)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が増加するごとに下付き文字が2つ下がることがわかりやすいので、iは下付き文字と線形関係になり、傾きは-2であり、数値を持ち込んで下付き文字=51-2 iを算出する
間違いがあれば指摘してください.もっと良い方法があれば、討論を歓迎します.
例題:2次元配列の1行目は小文字、2行目は大文字、振り子式出力(AaCcEe...WwYyZzXxVv.....DdBb)本題は2つのことをすれば、1つ目は記憶、2つ目は出力、記憶と出力を同じサイクルに入れ、出力のアルファベットは必ず配列の中に存在しなければならない.ここで私は記憶と出力を同期する:全部で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文字はアルファベット順(2 D配列の下付き)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個の格納アルファベット順(2次元配列の下付き)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が増加するごとに下付き文字が2つ下がることがわかりやすいので、iは下付き文字と線形関係になり、傾きは-2であり、数値を持ち込んで下付き文字=51-2 iを算出する
間違いがあれば指摘してください.もっと良い方法があれば、討論を歓迎します.