这个函数的功能是 如输入“s” 返回值123, 现在请大侠帮忙写个逆程序 输入123 得到 “s”
private int decode(String s) {
int i;
char[] ac;
int j;
int k;
i = 0;
ac = s.toCharArray();
j = 0;
k = ac.length;
while (j < k) {
i = (31 * i) + ac[j];
j++;
}
return Math.abs(i);
}java算法数学解码
private int decode(String s) {
int i;
char[] ac;
int j;
int k;
i = 0;
ac = s.toCharArray();
j = 0;
k = ac.length;
while (j < k) {
i = (31 * i) + ac[j];
j++;
}
return Math.abs(i);
}java算法数学解码
for(char c='A';c<'z';c++){
int n=c;
if(n==i){
return c;
}
}
return ' ';
}
(char)i; 单个字符就能逆
int value = decode("abc");
System.out.println(value);
System.out.println(encode(value));
} private static int decode(String s) {
int i;
char[] ac;
int j;
int k;
i = 0;
ac = s.toCharArray();
j = 0;
k = ac.length;
while (j < k) {
i = (31 * i) + ac[j];
j++;
}
return Math.abs(i);
} private static String encode(int value) {
StringBuffer sb = new StringBuffer();
while (value > 0) {
int target = value % 31;
while (target < 97) {
target += 31;
}
value -= target;
value /= 31;
sb.append((char) target);
}
return sb.reverse().toString();
}目测这个只能转5位字符以内的..坐等大神