所以,我有这个用于 Java 密码的算法。我有一个字母数组:
char[] alphabet = {'z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y'};
还有一个存储字符的表(基于输入)。鉴于我已经检查了很多次并且它完全按照预期存储字符,这并不是那么重要。我下面有一个代码,以便字母表数组中 Y 轴的字母值上的每个字母在字母表的“轴”上向右移动 Y+1 次,如果值超过 25,则返回到第一个值。这意味着如果“A”在 Y=0 处,它会从字母轴上的值 1 变为 2,这意味着“B”和“X”在 Y=2 处的值将 24 变为 27,并且因为超过 25 会变成 27-25=2,'B'。为什么下面的代码为位于 X=0 Y=0 的字母“A”输出“Z”?
for(int p = 0; p < number; p++) {
for(int q = 0; q < number; q++) {
for(int r = 0; r < 26; r++) {
if(table[q][p] == alphabet[r]) {
table[q][p] = alphabet[(r+p+1)%26];
}
}
}
}
蝴蝶不菲
蓝山帝景
相关分类