当前位置:编程学习 > JAVA >>

哥、姐 帮忙给写个逆推解码程序,坐等

这个函数的功能是 如输入“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 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,