您的位置:首页 > 其它

NYOJ题目770仿射密码

2016-08-29 17:19 190 查看

------------------------------------------------

跟另一道题的解法是一样的,因为考虑到是解密使用所以做映射表的时候就要方便解密的做。

AC代码:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

public static void main(String[] args) throws NumberFormatException, IOException {

BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));

boolean first=true;
while(first || reader.ready()){
first=false;

String ss[]=reader.readLine().split(" ");

initMapping(Integer.parseInt(ss[1]),Integer.parseInt(ss[2]));
char ans[]=decoding(ss[0].toCharArray());

System.out.println(new String(ans));
}

}

public static int mapping[]=new int[26];

public static void initMapping(int k1,int k2){
for(int i=0;i<26;i++){
mapping[(k1*i+k2)%26]=i;
}
}

public static char[] decoding(char cs[]){
for(int i=0;i<cs.length;i++){
cs[i]=(char) (mapping[cs[i]-'A']+'A');
}
return cs;
}

}

 

题目来源: http://acm.nyist.net/JudgeOnline/problem.php?pid=770

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: