哥、姐 帮忙给写个逆推解码程序,坐等
这个函数的功能是 如输入“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 算法 数学 解码 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- public char getChar(int i){
for(char c='A';c<'z';c++){
int n=c;
if(n==i){
return c;
}
}
return ' ';
} --------------------编程问答-------------------- 好难啊!支持楼主。 --------------------编程问答-------------------- 可能性太多,我觉得。 --------------------编程问答-------------------- 你这方法得到的就是 hashCode?,
(char)i; 单个字符就能逆 --------------------编程问答-------------------- 只会在输入限制在a-z的..而且没弄明白取abs之后怎么转..
public static void main(String[] args) {
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位字符以内的..坐等大神 --------------------编程问答-------------------- 看不懂啊 .... --------------------编程问答-------------------- 只会JAVA的路过
补充:Java , Web 开发