Description
侦察员小甲在被捕前在墙上写了两行文字(ASCII字符),其中包含了他获取的敌人密码,破译员琪琪经过3天3夜终于找到了破解方法,请编程帮助琪琪计算密码。
计算密码方法:只保留两行文字的数字,然后对两行数字从左向右逐位相加,不足位补0,将每位所求和加70得到ASCII,再按照字符输出就是密码。
例如:以下两行文字
<mary303>and<kitty739>
!!76$$=(50){%;%}?>
提取数字逐位相加
3 0 3 7 3 9
7 6 5 0
=============
10 6 8 7 3 9
逐位加70得到ASCII序列
80 76 78 77 73 79
对应的密码是 PLNMIO
Input
两行字符序列(每行不超过80个字符)
Output
一行密码
Sample Input
<mary303>and<kitty739> !!76$$=(50){%;%}?>
Sample Output
PLNMIO
【AC代码】:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s1 = sc.nextLine();
String s2 = sc.nextLine();
int c1[] = new int[100];
int c2[] = new int[100];
int k1 = 0;
for (int i = 0; i < s1.length(); i++)
if (s1.charAt(i) >= '0' && s1.charAt(i) <= '9') {
c1[k1] = s1.charAt(i) - '0';
k1++;
}
int k2 = 0;
for (int i = 0; i < s2.length(); i++)
if (s2.charAt(i) >= '0' && s2.charAt(i) <= '9') {
c2[k2] = s2.charAt(i) - '0';
k2++;
}
int k = 0;
if (k1 > k2)
k = k1;
else
k = k2;
int c[] = new int[k];
for (int i = 0; i < k; i++)
c[i] = c1[i] + c2[i] + 70;
for (int i = 0; i < k; i++)
System.out.print((char) c[i]);
}
}