首页 > 代码库 > NYOJ题目769乘数密码
NYOJ题目769乘数密码
-----------------------------------------
这道题目是有一点小技巧的,因为取模运算没办法还原所以只好计算所有存储起来然后找映射,但是存储数据的使用场景是解密,再存储从明文到密文的映射就不太合适了,于是就存储从密文到明文的映射,这样子的话解密的时候就可以线性的从密文到明文。
AC代码:
1 import java.io.BufferedReader; 2 import java.io.IOException; 3 import java.io.InputStreamReader; 4 5 public class Main { 6 7 public static void main(String[] args) throws IOException { 8 9 BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));;10 11 boolean first=true;12 13 while(first || reader.ready()){14 first=false;15 16 String s=reader.readLine();17 String ss[]=s.split("\\s{1,}");18 initMapping(Integer.parseInt(ss[1]));19 System.out.println(encoding(ss[0]));20 }21 }22 23 private static int[] mapping=new int[26];24 25 public static void initMapping(int k){26 for(int i=0;i<mapping.length;i++){27 mapping[k*i%26]=i;28 }29 }30 31 public static char[] encoding(String s){32 char cs[]=s.toCharArray();33 for(int i=0;i<cs.length;i++){34 cs[i]=(char) (mapping[cs[i]-‘A‘]+‘A‘);35 }36 return cs;37 }38 39 }
题目来源: http://acm.nyist.net/JudgeOnline/problem.php?pid=769
NYOJ题目769乘数密码
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。